此问题特定于 MSBuild 15.1+(Visual Studio 2017)和 PackageReference ,这是Nuget
完全集成在MSBuild
中的新方法。
在我的持续集成脚本中,我得到了类似的东西:
MSBuild.exe /t:Restore MySolution.sln /p:RestoreConfigFile=NuGet.config
csproj
文件之一包含:<PackageReference Include="MyPackageA">
<Version>1.2.*</Version>
</PackageReference>
MyPackageA
是一个内部软件包,我希望nuget将其引用为最新可用版本,包括预发行版本。让我们举两个例子:
示例#1
可用的软件包有:
我希望nuget解决依赖关系并选择MyPackageA版本1.2.8。
示例#2
可用的软件包有:
我希望nuget解决依赖关系,并选择MyPackageA版本1.2.9-dev2。
但是,在两个示例中,它只能解析为1.2.8版(稳定版本)。
有没有办法告诉
MSBuild
或Nuget
包含预发行软件包? 最佳答案
目前,预发行版本不能与 float 版本一起使用。
您可以使用
<PackageReference Include="mypk" Version="1.0.*" />
或者
<PackageReference Include="mypk" Version="1.0.1-*" />
但不是
1.0.*-*
。请参阅this GitHub issue,其中跟踪了此功能请求。
关于msbuild - 如何在MSBuild还原目标中包含预发行包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49917703/