我想使用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
选项,但我不知道如何使用它。
答案 0 :(得分:2)
通过检查NuGet客户端代码,看来Msbuild NuGet.targets中存在RestoreForceEvaluate选项,但我不知道如何使用它。
恐怕我们目前无法这样做。根据nuget Wiki,
Enable repeatable package restore using lock file:
选项--force-evaluate
没有这样的MSBuild等效选项,因此我们不能直接将--force-evaluate
与csproj中的MsBuild选项一起使用。
希望这会有所帮助。