问题1:baget.env配置不生效
网上有不少介绍拉取BaGet容器自建NuGet服务器的例子,baget.env配置文件放在当前baget-data子目录下面,然后docker run。我用docker compose试验不好用,主要问题是baget.env配置的环境变量貌似无法生效。后来全部改为docker compose里面定义环境变量,好使了。
docker-compose.yml示例如下:
version: '3'
services:
nugetserver:
container_name: nugetserver
image: loicsharma/baget
ports:
- "9100:80"
environment:
#- env-file=baget.env
- ApiKey=xxx123456
- Storage__Type=FileSystem
- Storage__Path=/var/baget/packages
- Database__Type=Sqlite
- Database__ConnectionString=Data Source=/var/baget/baget.db
- Search__Type=Database
- TZ=Asia/Shanghai
volumes:
- ./baget-data:/var/baget
restart: always
把docker-compose.yml拖到阿里云上,docker-compose up跑起来即可。
问题2:Edge访问http域名自动跳转为https
阿里云服务器配置了域名解析,Edge(Chrome内核)访问http://www.xxx.cn:9100会自动专为https,然后提示ERR_SSL_PROTOCOL_ERROR错误,后来用360浏览器(极速内核)访问是可以的。Chrome浏览器有相关设置,可以关闭http自动跳转https,但是Edge浏览器不知道怎么关闭。
问题3:类库缺少xml注释
这个问题网上很多介绍了,就是给类库项目增加一个属性即可。
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
然后打包类库,会多出xml文件,生成的nupkg会包含xml注解,引用NuGet包的项目可以看到函数注解。
开发流程
创建类库项目,在项目的打包属性中填写必要信息,然后打包,然后在nupkg所在文件夹控制台执行命令,推送到NuGet服务器。
dotnet nuget push -s http://www.xxx.cn:9100/v3/index.json TestLib.1.0.0.1.nupkg --api-key xxx123456
然后在VS2019的NuGet菜单中增加源。
在安装NuGet包的时候,选择自建的NuGet服务器即可。