gpt4 book ai didi

nuget - 本地 NuGet 库部署是否需要 Azure 帐户?

转载 作者:行者123 更新时间:2023-12-01 04:03:16 25 4
gpt4 key购买 nike

我想运行一个本地 NuGet Gallery 来为我的构建系统提供依赖项。

我注意到在 web.config 中它要求提供 Azure 详细信息,但代码似乎建议您可以选择“文件系统”作为存储后端。

我的问题是:

  • 如果我选择“文件系统”如何配置目标文件夹?
  • 我可以将存储引擎指向 SQL Server 的内部实例吗?

  • 我试图避免使用文件系统,因为这是我们现在在 NuGet Server 中使用的,而且速度非常慢。一些开发人员喜欢打包和推送每一个成功的构建,因此可扩展性很重要。

    我希望这里的任何答案也能对其他人有所帮助。作为背景,这里是设置您自己的 NuGet 库的绝佳链接。遗憾的是,作者省略了与实际包存储有关的所有细节: https://github.com/NuGet/NuGetGallery/wiki/Hosting-the-NuGet-Gallery-Locally-in-IIS

    最佳答案

    要配置文件系统包存储:

    <appSettings>
    <add key="Gallery:PackageStoreType" value="FileSystem" />
    <add key="Gallery:FileStorageDirectory" value="C:\Path\To\Packages" />
    </appSettings>

    指向不同的 SQL Server:

    <connectionStrings>
    <add name="NuGetGallery" connectionString="Data Source=SQLSERVERNAME;Initial Catalog=NuGetGallery;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
    </connectionStrings>

    编辑:支持 SQL Server 作为包存储

    如果要将包作为 BLOB 存储在 SQL Server 中,则必须对代码进行一些更改。

    首先,创建一个名为 SqlServerFileStorageService 的类并实现 IFileStorageService .这个接口(interface)有几个方法。重要的是 GetFile()SaveFile() .结合 folderNamefileName将创建一个可以在数据库表中使用的唯一键。

    您可以使用相同的连接字符串 NuGetGallery 或添加一个新的连接字符串以进行数据访问。

    然后将一个项目添加到枚举 PackageStoreType调用 SqlServer .

    在 ContainerBinding.cs 中为 PackageStoreType.SqlServer 添加一个案例绑定(bind)到您的 SqlServerFileStorageService .

    现在 NuGet 库应该创建一个 SqlServerFileStorageService并且所有获取和保存都将使用您的类将 blob 存储在 SQL Server 中。

    顺便说一句:我是基于对代码的粗略了解。可能会有一两个额外的步骤,但这些看起来像是您需要关注的主要领域。

    希望有帮助。

    关于nuget - 本地 NuGet 库部署是否需要 Azure 帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11630614/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com