本地NuGet Gallery部署是否需要Azure帐户?

本地NuGet Gallery部署是否需要Azure帐户?,nuget,azure-storage,Nuget,Azure Storage,我想运行一个本地NuGet Gallery来提供构建系统的依赖项 我注意到在web.config中它询问Azure的详细信息,但代码似乎建议您可以选择“文件系统”作为存储后端 我的问题是: 如果选择“文件系统”,如何配置目标文件夹 我是否可以将存储引擎指向SQL Server的内部实例 我试图避免使用文件系统,因为这是我们现在在NuGet服务器上使用的,而且速度非常慢。一些开发人员喜欢打包和推动每一个成功的构建,所以可伸缩性很重要 我希望这里的答案也能帮助其他人。作为背景,这里有一个建立你自己的

我想运行一个本地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。网站部署期间发生错误。