Paw*_*och 3 dependencies version set pack nuget
期间如何动态更改nuspec
文件中的依赖版本的问题nuget pack
<?xml version="1.0"?>
<package >
<metadata>
<id>MyPacked.Name</id>
<version>1.1.1</version>
<authors>Pawel Cioch</authors>
<owners>Pawel Cioch</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Some Cool package</description>
<releaseNotes>Initial Release</releaseNotes>
<copyright>Copyright 2015</copyright>
<tags>replace dependency version</tags>
<dependencies>
<dependency id="dep1" version="I want version here to be same as package version" />
<dependency id="dep2" version="2.1.3" />
</dependencies>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
请不要问“你为什么需要它”
如果问题很模糊,我也很抱歉,但由于我通过尝试/失败解决了它,现在一切似乎都很明显,所以“我不知道如何提问”
所述<version>
标签可以通过使用-Version开关来简单地改变
nuget 包 - 版本 2.0.0
nuget 文档几乎没有提到替换令牌 https://docs.nuget.org/create/nuspec-reference#replacement-tokens
我们可以做的是使用自定义令牌/标签
...
<version>$myVersion$</version>
...
<dependencies>
<dependency id="dep1" version="$myVersion$" />
Run Code Online (Sandbox Code Playgroud)
现在如何替换这个,现在不需要开关 -Version,但我们必须使用 -Properties 开关
nuget pack -Prop myVersion=3.0.0
Run Code Online (Sandbox Code Playgroud)
一些更高级的命令
nuget pack My.ProjName\My.ProjName.csproj -Build -Prop Configuration=Release;myVersion=3.0.0 -OutputDirectory SomeDirHere
Run Code Online (Sandbox Code Playgroud)
并且要很好地使用 powershell(示例),如果对多个属性使用分号,则必须将 -Prop 值括在双引号中
$userVersion = Read-Host 'Enter a valid version you want to use'
nuget pack .\My.ProjName\My.ProjName.csproj -Build -Prop "Configuration=Release;myVersion=$userVersion" -OutputDirectory SomeDirHere
Run Code Online (Sandbox Code Playgroud)
注意:使用 nuget 预定义$version$
令牌将工作依赖,但版本将从AssemblyInfo.cs获得上面的想法是每次通过命令行显式设置版本
我希望有人会发现它有用且节省时间