And*_*yuk 15 .net c# visual-studio nuget
有没有办法在nuget配置中使用环境变量?
目前我被限制使用相对路径,如下所示:
<configuration>
<config>
<add key="repositoryPath" value="..\..\teampackages" />
</config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是拥有一个带有绝对路径的环境变量会非常方便.
如果您在同一目录中运行nuget pack MyProject.csproj具有相应MyProject.nuspec文件的项目,NuGet将使MSBuild属性可用作格式的标记$Property$,其中PropertyMSBuild属性的名称.例如:
<?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>
Run Code Online (Sandbox Code Playgroud)
在这个例子中$id$,$version$,$title$,$author$和$description$是特殊值由自己的NuGet根据项目文件和属性的AssemblyVersion(通常在AssemblyInfo.cs中找到)提供.但是,$OutputPath$是在公共目标中定义的MSBuild属性.您还可以使用$ MSBuildProjectDirectory $或任何其他标准属性.
更多信息("替换代币"部分):
语法如下:
<configuration>
<config>
<add key="repositoryPath" value="%ENVIRONMENT_VARIABLE%/teampackages" />
</config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
重要笔记
%%;括起来 例如%env_variable_name%$env_variable_name。(出于 MAC 和 Linux 兼容性原因)/and NOT \(出于 MAC 兼容性原因)