簡體   English   中英

僅在Visual Studio代碼中編譯錯誤

[英]Compilation error only in Visual Studio Code

我下載了.NET SDK for the Froala WYSIWIG HTML Editor.NET SDK for the Froala WYSIWIG HTML Editor 下載鏈接可在此處獲取: https//www.froala.com/wysiwyg-editor/docs/sdks/dotnet

只需下載zip,解壓縮並打開它。

在Visual Studio 2019中編譯解決方案時,我沒有任何錯誤/警告。 在運行時也沒問題。

在Visual Studio Code中打開完全相同的解決方案時,即使編譯成功,編譯時也會遇到一些錯誤( dotnet build )。 在運行時沒問題。

錯誤主要是引用類型'HttpContext'聲明定義'System.Web',但未找到

如前所述這里可能是靶向2個不同.NET framework版本的問題。

解決方案(.sln)的組成如下:

  • src項目
  • demo-core項目(引用src項目)<---設置為默認項目
  • 演示項目(引用src項目)<----未使用因為我使用了demo-core

我無法在編譯時找到這個惱人的錯誤警告的解決方案。

更新1

src項目的目標是net472;netstandard2.0

demo-core項目針對的是.NET Core 2.0

更新2

我終於成功擺脫了編譯錯誤。 我只是從src projet的目標框架中刪除net472 ,並立即編譯錯誤消失。

我得到的結論是什么? 此修改如何影響Visual Studio Code以及為什么在Visual Studio 2019下不需要這樣做。抱歉,這對我來說很奇怪。

從該站點下載的所有原始源(並且還在github提交歷史中驗證)都沒有引用net472; 他們改為引用net471。 我懷疑該解決方案首先在Visual Studio 2019中嘗試過,並且沒有安裝.NET SDK 4.7.1目標包,嘗試重新定位SDK 4.7.2。

執行此操作並在VS Code中重新打開源代碼后,Omnisharp擴展會嘗試編譯第一個目標框架,因為對多個目標框架的支持不足 在這種情況下,src項目的第一個發現是net472(這很重要)。 請注意,翻轉目標框架的順序沒有任何影響。

錯誤“引用類型'HttpContext'聲明定義'System.Web',但未找到”現在是直接解釋。 如果我們在src / Image.cs中查找示例,我們將看到以下using語句:

using System;
using System.IO;
using System.Collections.Generic;
#if netcore
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.StaticFiles;
#else
using System.Web;
#endif

如果使用net472由Omnisharp服務器“編譯”src項目,它將導入System.Web.HttpContext 針對netcore2.0編譯的Controllers / FoalaApiController.cs中的演示核心項目改為引用Microsoft.AspNetCore.Http.HttpContext 這些顯然不匹配。

如果Omnisharp為src項目選擇了正確的netcore2.0目標,那么這些目標就會匹配。 它沒有讓你看到Omnisharp報告的這些錯誤。 您沒有從dotnet build或VS2019中看到這些錯誤,因為它們正確地解析了src項目的正確目標框架。


這是我下載源代碼時的第一次經歷。 目前尚不清楚您正在使用的.NET Core SDK版本。 當我構建源代碼時,我看到.NET Core SDK 2.2.100出現以下錯誤。

錯誤NU1003:PackageTargetFallback和AssetTargetFallback不能一起使用。 從項目環境中刪除PackageTargetFallback(不建議使用)引用。

此錯誤的修復很簡單:從.csproj文件中刪除PackageTargetFallback聲明。 在此之后,項目使用dotnet build編譯時沒有錯誤/警告。

我最初沒有在VS Code中看到任何其他錯誤,因為我也沒有安裝.NET SDK 4.7.1目標包。 因此,Omnisharp只能使用netstandard2.0編譯src項目。

暫無
暫無

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

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