[英]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.