簡體   English   中英

缺少編譯器所需的成員,但已添加 Microsoft.CSharp package

[英]Missing compiler required member but have already added Microsoft.CSharp package

我正在嘗試運行 Xamarin.Forms 應用程序,其中.Core項目是.NET Standard 2.0 我使用的是 Visual Studio 2022,這是我第一次運行 Xamarin 解決方案。

nnn.Core項目不構建並給出一系列相同的編譯錯誤

CS0656 缺少編譯器所需的成員“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

當我第一次遇到這個錯誤時,我做了一些搜索並發現了這篇文章,其中指出

要修復它,我必須包含我只需要包含來自 Nuget 的 Microsoft.CSharp。

所以,我打開了項目的.csproj文件,該文件包含該行

<TargetFramework>netstandard2.0</TargetFramework>

我發現ItemGroup包含PackageReference元素,所以添加

<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />

重建解決方案將錯誤數量從 ~9 減少到 4,但同樣的錯誤仍然存在。 奇怪的是,它們只是原始錯誤的一個子集,就好像.Core項目中只有一些行被 package 包含修復了,而有些則沒有。 然而,所有拋出構建錯誤的行都在同一個項目中。

上面拋出構建錯誤的第一行是對dymamic屬性的賦值(第二行):

dynamic values = new JObject();
values.LANGUAGE = _localize.GetCurrentCultureInfo().TwoLetterISOLanguageName.ToUpper();

事實上,仍然拋出錯誤的所有行都是創建dynamic object 之后的第一行,其中分配了一個屬性。

我缺少什么來解決這個問題?

編輯

具體來說,Android 項目有一個packages.config文件,其中包含

<package id="Microsoft.CSharp" version="4.7.0" targetFramework="monoandroid90" />

iOS項目的packages.config文件也有

<package id="Microsoft.CSharp" version="4.7.0" targetFramework="xamarinios10" />

一個Xamarin.Forms的項目,不止一個.csproj文件。 對於您已添加 nuget package Microsoft.CSharp的共享部分。

對於其他平台的部分,例如YourProjecName.AndroidYourProjecName.iOSYourProjecName.UWP部分。 您可以嘗試以下步驟來添加 nuget package Microsoft.CSharp

右擊平台部分項目->Select 卸載項目->雙擊平台部分項目->添加<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />

  • 關閉並重新打開 Visual Studio。
  • 如果仍然損壞,請關閉解決方案,刪除所有 .bin 和 .obj 文件夾。 再試一次。

暫無
暫無

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

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