本地NuGet Gallery部署是否需要Azure帐户?
我想运行一个本地NuGet Gallery来提供构建系统的依赖项 我注意到在web.config中它询问Azure的详细信息,但代码似乎建议您可以选择“文件系统”作为存储后端 我的问题是:本地NuGet Gallery部署是否需要Azure帐户?,nuget,azure-storage,Nuget,Azure Storage,我想运行一个本地NuGet Gallery来提供构建系统的依赖项 我注意到在web.config中它询问Azure的详细信息,但代码似乎建议您可以选择“文件系统”作为存储后端 我的问题是: 如果选择“文件系统”,如何配置目标文件夹 我是否可以将存储引擎指向SQL Server的内部实例 我试图避免使用文件系统,因为这是我们现在在NuGet服务器上使用的,而且速度非常慢。一些开发人员喜欢打包和推动每一个成功的构建,所以可伸缩性很重要 我希望这里的答案也能帮助其他人。作为背景,这里有一个建立你自己的
我希望这里的答案也能帮助其他人。作为背景,这里有一个建立你自己的NuGet画廊的链接。遗憾的是,作者省略了与实际包存储相关的所有详细信息:要配置文件系统包存储:
要指向其他SQL Server,请执行以下操作:
编辑:支持SQL Server作为包存储
如果您想在SQL Server中将包存储为blob,则必须对代码进行几处更改
首先,创建一个名为SqlServerFileStorageService
的类,并实现IFileStorageService
。这个接口有几种方法。重要的是GetFile()
和SaveFile()
。组合folderName
和fileName
将创建一个可在数据库表中使用的唯一键
您可以使用相同的连接字符串NuGetGallery,也可以为数据访问添加新的连接字符串
然后将名为SqlServer
的项添加到枚举PackageStoreType
在ContainerBinding.cs中,添加一个案例,用于PackageStoreType.SqlServer
绑定到您的SqlServerFileStorageService
现在,NuGet Gallery应该创建一个SqlServerFileStorageService
,所有的get和save都将使用您的类在SQLServer中存储blob
顺便说一句:我只是粗略地看了一下代码。可能还有一两个额外的步骤,但这些看起来是你需要关注的主要领域
希望能有所帮助。谢谢!答案1很好,但我没有具体说明,把第2题搞糟了。我的意思是:“我可以将包本身存储在我自己的SQL实例中,而不需要Azure帐户吗?”。我知道用SQL存储文件是不受欢迎的,但不管出于什么原因,如果这样做性能更好的话,我可能会这样做。我添加了关于如何做的说明。您需要编辑库代码。这看起来不是一项大量的工作-谢谢您的建议。我会在某个时候把它解决掉,并对文件系统存储进行性能测试。你有nuget gallery的代码吗?我想在Azure上托管它,你知道步骤吗?@Neo有关代码,请按照上面的链接并克隆git Report,但它没有包含任何web项目代码,也没有任何web,config configuration这是我刚才提到的链接:我使用了相同的代码库获取错误:Command:build\DeployFrontend.cmd处理.NET Web应用程序部署。D:\home\site\repository\src\NuGetGallery\NuGetGallery.csproj(1513,5):错误:此项目引用了此计算机上缺少的NuGet包。启用NuGet软件包还原以下载它们。缺少的文件是..\\packages\Microsoft.Bcl.Build.1.0.21\Build\Microsoft.Bcl.Build.targets。网站部署期间发生错误。