Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS 2015至2017迁移到包参考失败_C#_Visual Studio_Migrate - Fatal编程技术网

C# VS 2015至2017迁移到包参考失败

C# VS 2015至2017迁移到包参考失败,c#,visual-studio,migrate,C#,Visual Studio,Migrate,我继承了一个VS-2015 C#应用程序,希望将其迁移到VS 2017或2019。它有一个packages.config文件,其中包含4个包: 项目sln文件的前几行是: Microsoft Visual Studio解决方案文件,格式版本12.00 #Visual Studio 14 VisualStudioVersion=14.0.25420.1 最小VisualStudioVersion=10.0.40219.1 项目({E24C65DC-7377-472B-9ABA-BC803B73

我继承了一个VS-2015 C#应用程序,希望将其迁移到VS 2017或2019。它有一个packages.config文件,其中包含4个包:


项目sln文件的前几行是:

Microsoft Visual Studio解决方案文件,格式版本12.00
#Visual Studio 14
VisualStudioVersion=14.0.25420.1
最小VisualStudioVersion=10.0.40219.1
项目({E24C65DC-7377-472B-9ABA-BC803B73C61A})
我想将packages.config文件迁移到csproj文件

在Visual Studio 2017中,我尝试通过右键单击packages.config并单击“Migrate packages.config to PackageReference”来迁移它,但它给了我一个错误:

操作失败-项目不符合迁移条件

我也试过这个工具: 这也失败了

是否真的没有办法将其迁移到.csproj?

根据:

迁移目前不适用于C++和ASP.NET项目。


例如,迁移(通过右键单击软件包文件)对于控制台应用程序来说效果很好。

对于这个问题,我在较旧的ASP.NET项目中使用了一个解决方法(可能也适用于出现此问题的其他项目类型)

从本质上讲,迁移工具仍然可以工作,但首先必须在迁移过程中欺骗Visual Studio(暂时)使其认为您的项目是类库而不是web项目

详细步骤:

  • 如果项目/解决方案在Visual Studio中处于打开状态,请将其关闭,并对其进行备份

  • 在文本编辑器中打开.csproj文件

  • 剪切
    ProjectGuid
    projecttypeguid
    条目,并将它们临时粘贴到其他地方

  • {7C796B6B-86B5-4C57-ADAA-12CF1FECDA71}
    插入先前的
    项目GUID
    条目所在位置,然后保存文件

  • 在Visual Studio中打开项目(2017年或更高版本)

  • 右键单击packages.config文件并选择迁移到包引用的选项

  • 迁移成功后,再次关闭项目/解决方案

  • 返回.csproj文件,将
    ProjectGuid
    条目替换为步骤3中保存的
    ProjectGuid
    ProjectTypeGuids
    条目

  • 在Visual Studio中重新打开项目。您现在应该可以正常使用它了

  • 到目前为止,我在两个项目中都做到了这一点。我不能保证在边缘案例或更复杂的项目中不会有任何副作用,但这肯定是你可以尝试的


    为这个想法。< /P>这是一个基于C的项目,而不是C++。是否有任何方法可以迁移到PackageReference?@BeachBum和ASP.NET项目,而不考虑语言,因此遗憾的是,目前还没有。有关ASP.NET特定限制的更多详细信息:此引用包含血淋淋的细节。谢谢!它也对我起了作用,迁移了一个4.6.1 aps.net web应用程序。我在项目中呼吸错误,它停止了构建,因为“必须使用ProjectReference”。这个修好了!它确实在属性中重置了端口号。它可能会将所有内容重置为默认设置,但这是唯一的非默认设置,所以我只需将其更改回去。@jspinella很高兴它对您有所帮助。我认为有一两个nuget软件包在某个版本之后需要packagereference。因此,它可能是一个升级到这样一个包,导致您的问题。我不知道为什么会有这样的要求,但我在不久前的某个地方注意到了这一点,并得到了与您相同的错误…不幸的是,我忘记了它是一个特定的软件包。我无法编辑我以前的评论,但此修复程序还将Web.config文件更改为App.config。让别人知道的事情。我一直在与Microsoft.Extensions.XXXX软件包作斗争。