写在前面
有时我们不想对外公开源码,同时又想在VisualStudio中通过Nuget包管理器来统一管理这些内部动态库,这时就可以在本地搭建一个NuGet服务器。
操作步骤
1.下载BaGet
这是一个轻量级的NuGet服务器
2.部署BaGet
将下载好的release版本BaGet解压至 C:\inetpub\wwwroot\BaGet
在IIS中新建应用程序池
新建网站,并指定BaGetAppPool 作为应用程序池,绑定域名 test.com
重点来了,修改BaGet站点下的 web.config 配置
<?xml version="1.0" encoding="utf-8"?>
<configuration><location path="." inheritInChildApplications="false"><system.webServer><handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers><modules><remove name="WebDAVModule"/><remove name="WebDAV" /></modules><aspNetCore processPath="dotnet" arguments=".\BaGet.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /></system.webServer></location><system.webServer><httpErrors errorMode="DetailedLocalOnly" /></system.webServer>
</configuration>
修改appsettings.json配置
{"ApiKey": "ACMR","Urls":"http://*:82","PackageDeletionBehavior": "HardDelete","AllowPackageOverwrites": true,"Database": {"Type": "Sqlite","ConnectionString": "Data Source=baget.db"},"Storage": {"Type": "FileSystem","Path": ""},"Search": {"Type": "Database"},"Mirror": {"Enabled": true,// Uncomment this to use the NuGet v2 protocol//"Legacy": true,"PackageSource": "https://api.nuget.org/v3/index.json"}, "Logging": {"IncludeScopes": false,"Debug": {"LogLevel": {"Default": "Warning"}},"Console": {"LogLevel": {"Microsoft.Hosting.Lifetime": "Information","Default": "Warning"}}}
}
3.修改hosts 映射
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 test.com
这样就可以在本地模拟通过域名来访问了。
运行示例
接下来把做好的nuget包 推上去就可以了。