在 NuGet.Config 文件中设置环境变量
Setting an environment variable in a NuGet.Config file
我有一种情况,我想将 NuGet.config
文件的 repositoryPath
变量设置为相对于当前用户机器的位置。目标是拥有一个放置所有 NuGet 包的位置,以便:
- 它们不在我们每个团队项目的解决方案文件夹中(即 /Solution/packages/*)
- 它们在许多项目中共享,因此只需要在计算机上安装该包的一个副本。
理想情况下,我想使用带有环境变量的路径,例如 %APPDATA%
,但是 NuGet 包管理器不适用于此。
我的配置文件看起来像这样:
<config>
<add key="repositoryPath" value="C:\External\NuGetPackages" />
<add key="DefaultPushSource" value="\SourceCode\NuGetPackages\" />
</config>
理想情况下,我希望 repositoryPath 像这样工作:
<add key="repositoryPath" value="%APPDATA%\External\NuGetPackages" />
我尝试过的事情:
$(APPDATA)
$APPDATA
$Env:APPDATA
前两个只会导致目录中的这些名称被放置在与 NuGet.config 文件相同的位置。
这已作为功能添加到 NuGet v3.4+
现在可以使用标准语法在 Windows 中添加变量,例如:
<configuration>
<config>
<add key="repositoryPath" value="%HOME%\NuGetRepository" />
</config>
</configuration>
见https://docs.nuget.org/consume/nuget-config-file#environment-variables-in-configuration
我有一种情况,我想将 NuGet.config
文件的 repositoryPath
变量设置为相对于当前用户机器的位置。目标是拥有一个放置所有 NuGet 包的位置,以便:
- 它们不在我们每个团队项目的解决方案文件夹中(即 /Solution/packages/*)
- 它们在许多项目中共享,因此只需要在计算机上安装该包的一个副本。
理想情况下,我想使用带有环境变量的路径,例如 %APPDATA%
,但是 NuGet 包管理器不适用于此。
我的配置文件看起来像这样:
<config>
<add key="repositoryPath" value="C:\External\NuGetPackages" />
<add key="DefaultPushSource" value="\SourceCode\NuGetPackages\" />
</config>
理想情况下,我希望 repositoryPath 像这样工作:
<add key="repositoryPath" value="%APPDATA%\External\NuGetPackages" />
我尝试过的事情:
$(APPDATA)
$APPDATA
$Env:APPDATA
前两个只会导致目录中的这些名称被放置在与 NuGet.config 文件相同的位置。
这已作为功能添加到 NuGet v3.4+
现在可以使用标准语法在 Windows 中添加变量,例如:
<configuration>
<config>
<add key="repositoryPath" value="%HOME%\NuGetRepository" />
</config>
</configuration>
见https://docs.nuget.org/consume/nuget-config-file#environment-variables-in-configuration