![](/img/trans.png)
[英]Missing compiler required member 'microsoft.csharp.runtimebinder.binder.convert'
[英]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.Android
, YourProjecName.iOS
和YourProjecName.UWP
部分。 您可以嘗試以下步驟來添加 nuget package Microsoft.CSharp
。
右擊平台部分項目->Select 卸載項目->雙擊平台部分項目->添加<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.