[英]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 项目。
详细步骤:
如果您的项目/解决方案在 Visual Studio 中打开,请关闭它,并对其进行备份。
在文本编辑器中打开 .csproj 文件
剪切ProjectGuid
和ProjectTypeGuids
条目,并将它们临时粘贴到其他位置。
将<ProjectGuid>{7C796B6B-86B5-4C57-ADAA-12CF1FECDA71}</ProjectGuid>
插入之前您的ProjectGuid
条目所在的位置,并保存文件
在 Visual Studio(2017 或更高版本)中打开项目
右键单击 packages.config 文件并选择迁移到包引用的选项。
迁移成功后,再次关闭项目/解决方案。
返回 .csproj 文件并将ProjectGuid
条目替换为您在步骤 3 中保存的ProjectGuid
和ProjectTypeGuids
条目。
在 Visual Studio 中重新打开项目。 您现在应该可以正常使用它了。
到目前为止,这对我有两个项目。 我不能保证在边缘情况或更复杂的项目中不会有任何副作用,但这当然是您可以尝试的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.