繁体   English   中英

VS 2015 到 2017 迁移到包引用失败

[英]VS 2015 to 2017 migrate to package reference failed

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

<package id="AjaxControlToolkit" version="15.1.4.0" targetFramework="net4" />
<package id="EntityFramework" version="6.0.0" targetFramework="net4" />
<package id="Microsoft.AspNet.Providers" version="2.0.0" targetFramework="net4" />
<package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net4" />

项目的 sln 文件的前几行是:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}")

我想将packages.config 文件迁移到csproj 文件。

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

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

错误信息

我也试过这个工具: https : //github.com/hvanbakel/CsprojToVs2017 ,这也失败了。

真的没有办法将它迁移到 .csproj 吗?

我已在较旧的 ASP.NET 项目中使用了此问题的解决方法(并且可能也适用于其他出现此问题的项目类型)。

本质上,迁移工具仍然可以工作,但首先您必须在进行迁移时欺骗 Visual Studio(暂时)认为您的项目是类库而不是 Web 项目。

详细步骤:

  1. 如果您的项目/解决方案在 Visual Studio 中打开,请关闭它,并对其进行备份

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

  3. 剪切ProjectGuidProjectTypeGuids条目,并将它们临时粘贴到其他位置。

  4. <ProjectGuid>{7C796B6B-86B5-4C57-ADAA-12CF1FECDA71}</ProjectGuid>插入之前您的ProjectGuid条目所在的位置,并保存文件

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

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

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

  8. 返回 .csproj 文件并将ProjectGuid条目替换为您在步骤 3 中保存的ProjectGuidProjectTypeGuids条目。

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

到目前为止,这对我有两个项目。 我不能保证在边缘情况或更复杂的项目中不会有任何副作用,但这当然是您可以尝试的。

这个想法归功于这个 GitHub 评论

根据文档

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

例如,迁移(通过右键单击包文件)适用于控制台应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM