通过MsBuild / csproj强制评估具有锁定文件的浮动版本程序包

时间:2018-11-21 08:37:50

标签: c# visual-studio msbuild nuget

我想使用Nuget的Locking依赖关系(> = 4.9),所以我可以在开发阶段自动进行软件包更新,而在发行版本进行固定版本。

我启用了锁定文件模式,所以我现在有一个packages.lock.json文件。

问题是,当我在项目文件中具有浮动版本的程序包引用时,例如:

<PackageReference Include="My.Nuget.Package" Version="1.0.*" />

通过Visual Studio Build还原的软件包不再更新为新的软件包版本。激活锁定文件后,就会出现这种现象。

Microsoft documentation--force-evaluate描述了dotnet.exe选项,效果很好,但是我想直接使用csproj中的MsBuild选项来做到这一点。

通过检查NuGet客户端代码,看来Msbuild NuGet.targets中存在一个RestoreForceEvaluate选项,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:2)

  

通过检查NuGet客户端代码,看来Msbuild NuGet.targets中存在RestoreForceEvaluate选项,但我不知道如何使用它。

恐怕我们目前无法这样做。根据nuget Wiki,

Enable repeatable package restore using lock file

enter image description here

选项--force-evaluate没有这样的MSBuild等效选项,因此我们不能直接将--force-evaluate与csproj中的MsBuild选项一起使用。

希望这会有所帮助。