我有一个针对.NET 4.7.2的C#类库,每当我推送提交时,我都会使用VSTS构建并部署到私有NuGet包源。一切正常。
我还有一个针对.NET 4.0的遗留项目,我想在其中使用上面的库。我已经创建了我的库的一个新分支并将其移植到目标.NET 4.0(必须删除一些不受支持的功能)并创建了一个新的VSTS CI构建,该构建由推动此分支触发。再次,一切正常。
问题是生成的NuGet包只是显示为.NET 4.7.2的新版本!理想情况下,我希望在我的私人Feed中显示2个包:MyPackage
和MyPackage.dotnet40
这甚至可能吗?或者我应该做一些完全不同的事情?
感谢@ DanielMann的回答,我通过向我的项目添加.nuspec
文件并在我的VSTS构建定义中重新配置(略微)我的NuGet包任务来解决了这个问题:
nuget spec
以在.nuspec
文件旁边创建.csproj
文件(可能需要将nuget.exe
添加到您的路径中).nuspec
文件。我替换了VSTS自动替换的除$version$
之外的所有占位符,但您可以在高级>其他构建属性下的Nuget包任务中为所有占位符提供值。 重要的是$id$
占位符,将其更改为您希望调用包的任何内容 .nuspec
添加到源代码管理并提交/推送.nuspec
文件,而不是.csproj
文件答案 0 :(得分:1)
如果您打包的项目包含.nuspec
文件,请更改NuSpec文件中的包名称。
如果它基于项目名称,请更改项目名称。
基本上,这里没有问题 - 你分叉了代码库,所以你有两个完全独立的实体,你可以做任何你想做的事。
答案 1 :(得分:0)
您必须创建单独的Feed并定位新项目。