升级Visual Studio 2019中的xproj文件。

7

我需要升级一个Visual Studio 2019项目,它是xproj类型。当我尝试打开解决方案时,它说需要升级,但然后我收到以下信息:

xproj项目文件不再受支持。有关迁移到csproj的详细信息,请参见https://learn.microsoft.com/en-us/dotnet/core/migration/

链接的文档提到可以在Visual Studio中完成(无法实现)或使用dotnet migrate。当我尝试时,我得到以下提示:

Could not execute because the specified command or file was not found.
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET Core program, but dotnet-migrate does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

进一步了解后发现,在dotnetcore 3.0中已经弃用了dotnet migrate命令。

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-migrate

此命令已被弃用。从.NET Core 3.0 SDK开始,dotnet migrate命令不再可用。它只能将Preview 2 .NET Core项目迁移到1.x .NET Core项目,而这已经不再得到支持。

我在Visual Studio 2017和2015的命令行上都尝试过,并获得了完全相同的错误信息。看来安装dotnetcore3会导致无法使用该命令。

是否有任何方法可以在没有访问推荐的Microsoft工具的情况下迁移项目?


我遇到了同样的问题。我的解决方案中有多个项目和global.json文件。我已经花费了半天的时间,但仍然没有找到解决方案。如何将.NET Core 1预览版升级到最新的.NET Core?有人知道如何解决吗? - vik
1个回答

15

你可以使用这个命令列出已安装的dotnet core sdk版本:

dotnet --list-sdks

你可以通过以下命令切换回较旧的dotnet core sdk版本(例如2.0.2):

dotnet new globaljson --sdk-version 2.0.2

这应该在您的xproj所在的文件夹中执行。

最后,您可以通过以下方式迁移项目:

dotnet migrate

嗨,我有同样的问题,我该如何找出在运行“dotnet migrate”之前需要返回哪个.NET SDK? - Fakhar Ahmad Rasul
1
如果我运行 dotnet new globaljson --sdk-version 2.0.2,会不会对我的机器上的其他项目造成任何问题?因为我认为它会全局更改 .net 版本。 - Fakhar Ahmad Rasul
1
对于未来遇到此情况的任何人,请注意微软文档中的说明:“该命令已过时。自.NET Core 3.0 SDK起,dotnet migrate命令将不再可用。它只能将Preview 2 .NET Core项目迁移到1.x .NET Core项目,而这已不再受支持。”所以您需要在计算机上运行较早版本的.NET Core SDK才能迁移项目。文档链接:https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-migrate - JED

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接