有没有办法在nuget配置中使用环境变量?
目前我被限制使用相对路径,如下所示:
<configuration>
<config>
<add key="repositoryPath" value="..\..\teampackages" />
</config>
</configuration>
但是用一个带有绝对路径的环境变量真的很方便。
答案 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 $或任何其他标准属性。
此处有更多信息(“替换代币”部分):
答案 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)