在NuGet配置中使用环境变量?

时间:2013-05-31 15:51:08

标签: c# .net visual-studio nuget

有没有办法在nuget配置中使用环境变量?

目前我被限制使用相对路径,如下所示:

<configuration>
  <config>

    <add key="repositoryPath" value="..\..\teampackages" />
  </config>
</configuration>

但是用一个带有绝对路径的环境变量真的很方便。

4 个答案:

答案 0 :(得分:5)

如果您在同一目录中具有相应nuget pack MyProject.csproj文件的项目上运行MyProject.nuspec,NuGet将使MSBuild属性以$Property$格式提供,其中{{1}是MSBuild属性的名称。例如:

Property

在此示例中,<?xml version="1.0"?> <package > <metadata> <id>$id$</id> <version>$version$</version> <title>$title$</title> <authors>$author$</authors> <owners>$author$</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>$description$</description> <copyright>Copyright 2013</copyright> </metadata> <files> <file src="$OutputPath$MyProject.pdb" target="lib\net40"/> </files> </package> $id$$version$$title$$author$是NuGet自身根据项目文件和AssemblyVersion属性提供的特殊值(通常在AssemblyInfo.cs中找到)。但是,$description$是在公共目标中定义的MSBuild属性。您还可以使用$ MSBuildProjectDirectory $或任何其他标准属性。

此处有更多信息(“替换代币”部分):

NuSpec Reference

答案 1 :(得分:3)

NuGet V3支持全局包文件夹,请参阅http://blog.nuget.org/20151008/NuGet-3-What-and-Why.html

NuGet V3.2支持全局NUGET_PACKAGES环境变量,以指定共享全局包文件夹的位置。看到: https://docs.nuget.org/release-notes/nuget-3.2

也许其中一个可以帮助您解决问题。

我遇到了和你一样的问题,这些功能看起来很有希望解决我遇到的实际问题。 NuGet 3.2仅适用于VS2015,我们在2015年还有其他一些问题,所以我还没有尝试过。

答案 2 :(得分:1)

这适用于nuget 3.4及更高版本的标准%foo%环境变量引用: https://github.com/NuGet/Home/issues/1852

答案 3 :(得分:0)

相关问题