簡體   English   中英

需要幫助重定向 .NET 應用程序

[英]Need help retargeting .NET application

指南所示,我正在嘗試讓 vscode 以統一方式啟用 c# 代碼完成。 早些時候我遇到了一個問題,由於某種原因,安裝了 .NET 目標包,但沒有安裝 SDK,有人能夠幫助我解決這個問題。 但是,我仍然收到提示無法找到參考程序集的錯誤。 我已經重新安裝了開發包 .NET SDK 和目標包,重新啟動了我的計算機,並卸載/重新安裝了擴展。 日志說我可能必須重新定位應用程序,但這非常模糊,我找不到任何關於如何做到這一點的指南。 謝謝你的幫助。

編輯:我嘗試將目標框架更改為 4.8,但是omnisharp 具有相同的錯誤日志,但我也安裝了不同的版本。 這可能是多個驅動器的問題嗎?

.csproj 目標框架:

v4.7.1

Omnisharp 錯誤日志:

在 2020 年 5 月 31 日晚上 7:56:50 啟動 OmniSharp 服務器目標:a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln

OmniSharp 服務器已啟動。 路徑:c:\Users\0dps1.vscode\extensions\ms-dotnettools.csharp-1.22.0.omnisharp\1.35.2\OmniSharp.exe PID:5544

[info]: OmniSharp.Stdio.Host Starting OmniSharp on Windows 6.2.9200.0 (x64) [info]: OmniSharp.Services.DotNetCliService DotNetPath set to dotnet [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Located 2 MSBuild instance(s) 1:Visual Studio 社區 2019 16.6.30114.105 -“A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin”2:StandAlone 16.4 -“c:\Users\0dps1.vscode\extensions\ms- dotnettools.csharp-1.22.0.omnisharp\1.35.2.msbuild\Current\Bin" [信息]: OmniSharp.MSBuild.Discovery.MSBuildLocator 已注冊 MSBuild 實例 "A:\Program Files 2019 16.6.3" Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin" [信息]:OmniSharp.Cake.CakeProjectSystem 檢測 'a:\Github\Unity\2_Terminal_Hacker' 中的 Cake 文件。 [信息]:OmniSharp.Cake.CakeProjectSystem 找不到任何蛋糕文件 [信息]:OmniSharp.MSBuild.ProjectSystem 檢測“a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln”中的項目。 [信息]:OmniSharp.MSBuild.ProjectManager 'a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj' 的隊列項目更新 [信息]:OmniSharp.Script.ScriptProjectSystem 檢測 'a:\Github\Unity\ 中的 CSX 文件2_Terminal_Hacker'。 [信息]:OmniSharp.Script.ScriptProjectSystem 找不到任何 CSX 文件 [信息]:OmniSharp.WorkspaceInitializer 調用工作區選項提供程序:OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider,訂單:0 [信息]:OmniSharp.MSBuild.ProjectManager 正在加載項目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj [信息]:OmniSharp.WorkspaceInitializer 調用工作區選項提供程序:OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider,訂單:100 [信息]:OmniSharp.WorkspaceInitializer 調用工作區選項提供程序:OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider,訂單:110 [信息]:OmniSharp.WorkspaceInitializer 調用工作區選項提供程序:OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider,訂單:140 [信息]:OmniSharp.WorkspaceInitializer 配置完成. [信息]:OmniSharp.Stdio.Host Omnisharp 服務器使用 Stdio 在主機 4260 上的位置“a:\Github\Unity\2_Terminal_Hacker”運行。[失敗]:OmniSharp.MSBuild.ProjectLoader .NETFramework 的參考程序集,版本 = v4。 7.1 沒有找到。 要解決此問題,請為此框架版本安裝開發包(SDK/Targeting Pack)或重新定位您的應用程序。 You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [warn]: OmniSharp.MSBuild.ProjectManager Failed to load project file 'a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj'. a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1177,5):錯誤:The .NETFramework,Version=v4.7.1 的參考程序集未找到。 要解決此問題,請為此框架版本安裝開發包(SDK/Targeting Pack)或重新定位您的應用程序。 您可以在https://aka.ms/msbuild/developerpacks下載 .NET 框架開發人員包

[失敗]:OmniSharp.MSBuild.ProjectManager 嘗試更新未加載的項目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj

https://docs.microsoft.com/en-us/dotnet/standard/frameworks

如果您打開 .csproj 文件,您將看到“TargetFramework”標簽,並在其中看到來自鏈接的可能值之一。 “重新定位”意味着將“目標框架”值從“net471”更改為“net46”。

不幸的是,由於這是 Unity 項目,Unity 喜歡完全控制 csproj 文件的內容,您所做的任何更改都只是暫時的。 因此,您可能會重新定位到某些東西並消除錯誤 go,但 Unity 稍后會隨心所欲地將其恢復為“net471”。

您的選擇是:

  1. 修復 .net sdk /vscode 安裝,以便獲得目標包。 您可以嘗試在 VS 社區中打開解決方案,也許它會從 UI 中提供修復

  2. Unity 在播放器設置中有一個內置的下拉菜單來定位 net2 或類似的東西,而不是 net471,但那是一個非常古老的 c#/net 版本。 它最近可能已被完全棄用。

  3. 做一些技巧來將自己注入到統一的 csproj 生成中,所以它總是使用你擁有的某個版本(不推薦)

編輯-是的,實際上很可能是多驅動器問題。 我從您的日志中看到 Visual Studio Community 安裝在 A:\drive 上。 參考程序集通常位於“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework”中。 因此,MSBuild.exe 查找這些文件的位置與實際安裝目標包的位置很可能不匹配。

除了嘗試在 C:\ 上的默認位置安裝 VS 之外,真的不知道如何解決此問題 - 可能有一些神奇的環境變量可以設置為觸發 MSBuild 以查看正確的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM