簡體   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