我有一个项目,其中包含三个针对各种 .net 版本(mylib.net20.csproj
、、mylib.net40.csproj
和mylib.net40-client.csproj
)的项目文件。mylib.nuspec
我有一个命名为将它们打包在一起的单个 nuspec 文件。
查看 nuspec 文件的文件部分可能会有所帮助,所以这里是:
<files>
<file src="bin\net20\*.dll" target="lib\net20\" />
<file src="bin\net40-client\*.dll" target="lib\net40-client\" />
<file src="bin\net40\*.dll" target="lib\net40\" />
</files>
现在我在 nuspec 文件中使用了一个静态版本号,我可以通过运行nuget pack mylib.nuspec
. 但是,我想开始使用$version$
所以我不必记住在两个地方更新版本号。
如果我只是将版本号更改为$version$
,并以相同的方式构建,我会得到可预测的错误:
Attempting to build package from 'mylib.nuspec'.
The replacement token 'version' has no value.
如果我使用$version$
和打包nuget pack mylib.net40.csproj
,它是成功的,但是我得到一个完全忽略 nuspec 文件的包。
问:我该怎么做才能使$version$
变量起作用?
从技术上讲,我可以将我的 nuspec 文件重命名为mylib.net20.nuspec
,然后使用nuget pack mylib.net20.nuspec
. 不过,我真的不想以这种方式重命名我的 nuspec 文件。