项目特定 Nuget.config 与 .net core/code

Project specific Nuget.config with .net core/code

通常,我们从 users\[loggedinuser\AppData\Roaming\Nuget 得到我们的 Nuget.config 但我们有一个特定项目需要使用不同项目特定配置文件的情况。在这种情况下我应该把配置文件放在哪里?

我正在使用 .net 核心 SDK 1.0.4 和 .net 代码。

构建脚本这样做:

cd src\SFMC.Adapter.Service
dotnet restore
dotnet build

我可以将参数传递给 dotnet restore 以指示配置的位置吗?

假设您的项目结构如下:

Project/
└── src
    ├── SFMC.Adapter.Client
    ├── SFMC.Adapter.Service
    │   ├── Program.cs
    │   └── Project.csproj
    └── SFMC.Adapter.Service.Test

您可以在项目树中的任何位置添加 Nuget 文件。你把它放在哪里会影响哪些项目默认看到它。 dotnet restore 将在目录树中搜索所有 Nuget.config 文件以添加它找到的任何源。

如果你把它放在 Service.cs 旁边,它只会被 SFMC.Adapter.Service 捡起。如果您将它放在 src 下,它将被 SFMC.Adapter.ServiceSFMC.Adapater.Service.TestSFMC.Adapter.Client.

拾取并使用

有关详细信息,请参阅 NuGet configuration docs

来自Nuget docs

Project-specific NuGet.Config files located in any folder from the solution folder up to the drive root. These allow control over settings as they apply to a project or a group of projects.

因此您可以将 Nuget 配置文件与项目文件放在一起,为该项目提供特定配置。

我知道它是一个相当古老的 post,但我也在努力使用它并且很难找到正确的文档。我最终发现您可以执行以下命令将新的 nuget 配置添加到您所在的位置。 dotnet new nugetconfig

这将使用 dotnet cli 来使用 nugetconfig 模板(似乎是默认安装的)生成正确的文件