我已经从xproj升级到csproj并且我一直在
dotnet restore restore.dg
MSBUILD : error MSB1009: Project file does not exist.
Switch: restore.dg
如果我将文件添加到我的项目目录,那么它会说
C:\Git\XX\WebSite\restore.dg(1,1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 1, position 1.
C:\Git\XX\WebSite>dotnet restore restore.dg
C:\Git\XX\WebSite\restore.dg : error MSB4025: The project file could not be loaded. Root element is missing.
答案 0 :(得分:1)
看起来转换出错了。 restore.dg
的结果不应包含任何dotnet migrate
个文件。恢复原始xproj
并尝试重新运行迁移。
当然,您可以简单地尝试删除此restore.rg
,但只要迁移看起来不成功,您就可能有不完整/错误的csproj
文件。
如果迁移再次失败,您可以尝试从命令行手动运行迁移(而不是从VS)。以下是单项目解决方案的说明:
project.json
,project.lock.json
,yourporject.xproj
和可选的youproject.xproj.user
global.json
,并确保它在上/父目录中不存在(它可能会将您“固定”到旧的dotnet
版本)。project.json
所在的位置)。dotnet --info
- 它不应显示任何preview
版本,必须为1.0.0或更高版本(1.0.3 is current)dotnet migrate
。它必须成功运行(绿色文本),#1中列出的所有4个文件都应该消失,应该出现一个新文件youproject.csproj
。在内部,它将包含来自project.json
的所有(或几乎所有)信息 - 但仔细检查一下,有时会丢失一些包属性,如“Copyright”,“Company”等 - 您需要通过项目将它们放回去VS中的属性。对于asp.net项目,runtimeconfig.template.json
也可能出现(使用"gcServer": true
指令).vs
,bin
和obj
文件夹,以确保VS将从地面恢复包并重建项目。 对于多项目解决方案 - 在转换引用“主”项目的测试项目时,我的所有迁移都失败并出现错误。我没有时间调试这个,所以要解决这个问题,我从测试项目中手动删除project.lock.json
,从他们的project.json
手动删除对原始代码项目的引用,然后从解决方案根目录运行迁移(一次)对于所有项目)。