dotnet-cli 相当于 nuget 更新,参数 -fileconflictaction 覆盖

问题描述

我有 ASP.NET MVC 5 Web 应用程序(旧版 MVC),它使用旧的 csproj 格式和 packages.config 文件来管理 nuget 依赖项。

以下命令用于更新某些软件包:

nuget.exe update MySolution.sln -Prerelease -FileConflictAction Overwrite -Id PackageA -Id PackageB -Id PackageC

PackageC 依赖于 PackageB 和 PackageA。

迁移到新的 csproj 格式后,我只有这个:

<packagereference Include="PackageC" Version="10.28.0-build8844" targetFramework="net472" />

我正在尝试将上面的 nuget 命令迁移到 dotnet cli:

dotnet add path-to-my.csproj package PackageC --prerelease

输出错误error: NU1107: Version conflict detected for PackageB. Install/reference PackageB 10.28.0-build8847 directly to project MyProject to resolve this issue. , 但增加了 PackageC 的版本。

当我添加所有三个时:

  • <packagereference Include="PackageA" Version="10.28.0-build8844" targetFramework="net472" />
  • <packagereference Include="PackageB" Version="10.28.0-build8844" targetFramework="net472" />
  • <packagereference Include="PackageC" Version="10.28.0-build8844" targetFramework="net472" />

并以正确的顺序执行 dotnet cli 命令:

  • dotnet add path-to-my.csproj package PackageA --prerelease
  • dotnet add path-to-my.csproj package PackageB --prerelease
  • dotnet add path-to-my.csproj package PackageC --prerelease

然后没有错误打印出来并且包版本在 csproj 文件中正确更新。

然而,PackageC 包含一些 *.cshtml 文件,并且这些文件没有更新。以前 nuget 的 -FileConflictAction Overwrite 参数用于指定发生冲突时要执行的操作。

非常感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)