我正在尝试编译uwp应用程序,但出现以下错误:
警告MCG:警告MCG0007:方法'System.Int32 Microsoft.DotNet.PlatformAbstractions.Native.NativeMethods.Windows.RtlGetVersion(Microsoft.DotNet.PlatformAbstractions.Native.NativeMethods.Windows .RTL_OSVERSIONINFOEX)”。调用此方法将在运行时引发异常。请确保P / Invoke指向UWP应用程序中允许的Windows API,或者指向包中的本机DLL。如果出于某些原因您的P / Invoke不满足这些要求,请使用[DllImport(ExactSpelling = true)表示您了解使用非UWP API的含义。
问题是我找不到原点,有没有办法调试此问题?或者我怎么能找到导致问题的图书馆?
更新:我附加了引发相同编译错误的示例项目。如果有人可以看看。我将非常感谢。
更新2:我有一个使用以下nuget包的UWP应用:
此应用程序使用3个.netstandard库。
UWP应用包含以下参考。
<PackageReference Include="AdaptiveCards">
<Version>1.2.4</Version>
</PackageReference>
<PackageReference Include="MailKit">
<Version>2.4.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter">
<Version>2.6.4</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Analytics">
<Version>2.6.4</Version>
</PackageReference>
<PackageReference Include="Microsoft.AppCenter.Crashes">
<Version>2.6.4</Version>
</PackageReference>
<PackageReference Include="Microsoft.Azure.Storage.Blob">
<Version>11.1.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
<Version>6.2.9</Version>
</PackageReference>
<PackageReference Include="Microsoft.Services.Store.Engagement">
<Version>10.1901.28001</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp">
<Version>6.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications">
<Version>6.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Animations">
<Version>6.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Controls">
<Version>6.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Controls.DataGrid">
<Version>6.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.UI.Xaml">
<Version>2.3.191211002</Version>
</PackageReference>
<PackageReference Include="Microsoft.Xaml.Behaviors.Uwp.Managed">
<Version>2.0.1</Version>
</PackageReference>
<PackageReference Include="MimeKit">
<Version>2.4.1</Version>
</PackageReference>
<PackageReference Include="MvvmLight">
<Version>5.4.1.1</Version>
</PackageReference>
<PackageReference Include="SQLitePCLRaw.bundle_green">
<Version>2.0.2</Version>
</PackageReference>
<PackageReference Include="SQLitePCLRaw.core">
<Version>2.0.2</Version>
</PackageReference>
<PackageReference Include="Win2D.uwp">
<Version>1.24.0</Version>
</PackageReference>
它使用3个.netStandard库。
ServicesLibrary
<PackageReference Include="itext7" Version="7.1.9" />
<PackageReference Include="Microsoft.AppCenter" Version="2.6.4" />
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="2.6.4" />
<PackageReference Include="Microsoft.Azure.Storage.Blob" Version="11.1.1" />
<PackageReference Include="Microsoft.Identity.Client" Version="4.7.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Portable.BouncyCastle" Version="1.8.5.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.7.0" />
<PackageReference Include="System.ServiceModel.Http" Version="4.7.0" />
DataLibrary
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.0" />
<PackageReference Include="Z.EntityFramework.Extensions.EFCore" Version="3.0.31" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="3.0.31" />
<PackageReference Include="Z.Expressions.Eval" Version="3.0.11" />
SigningLibrary
<PackageReference Include="BouncyCastle.NetCore" Version="1.8.5" />
<PackageReference Include="System.Security.AccessControl" Version="4.7.0" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="4.7.0" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="4.7.0" />
<PackageReference Include="System.Security.Permissions" Version="4.7.0" />
<PackageReference Include="System.Security.Principal.Windows" Version="4.7.0" />
UWP引用了ServicesLibrary和DataLibrary,ServicesLibrary引用了SigningLibrary和DataLibrary。这就是我试图在发布模式下编译的应用程序的结构。
非常感谢您的帮助。
答案 0 :(得分:2)
提出所有建议后,尝试重现编译器错误。我发现Z.EntityFramework库是导致此问题的一个库。查看日志,发现所有内容都是对EntityFrameworkCore的引用,与编译器错误有关。但是从那以后,我开始删除库,直到最终找到导致该问题的库。
使用诸如MCG0007: Unresolved P/Invoke
感谢您的帮助。