System.Runtime.CompilerServices.Unsafe 而 运行 Xamarin 中的 .Net 标准项目
System.Runtime.CompilerServices.Unsafe while running .Net Standard project in Xamarin
我正在使用 .Net Standard 在 xamarin
中创建一个应用程序,到目前为止,我已经在我的解决方案中安装了以下 Nuget 包
PCL/.Net 标准包
Android 包
最低 SDK 级别为 Android 5.1
,最高为 Android Oreo 8.1
。
当我 运行 visual studio VS2017 中的应用程序 运行 几秒钟后突然关闭并抛出以下错误
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: Could not load assembly 'System.Runtime.CompilerServices.Unsafe' during startup registration.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: This might be due to an invalid debug installation.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: A common cause is to 'adb install' the app directly instead of doing from the IDE.
我尝试多次清理解决方案并删除 bin 和 obj 文件夹,但我遇到了同样的错误。
我没有写任何代码,因为我只是在迁移项目,所以这个项目是空白的。
我个人认为 Realm
有 System.Runtime.CompilerServices
参考,因此它的创建问题。这是从 nuget
安装领域的屏幕截图
我也有这个错误,但它是在使用 .net 标准库中的 Entity Framework 时出现的。这花了很长时间才整理出来!希望这对你有用。
在 android 项目中添加以下内容作为 XmlFile eg(UnsafeCompilerWorkaround.xml):
<Project>
<Target Name="ReplaceRefAssemblies" AfterTargets="_ResolveAssemblies">
<ItemGroup>
<ResolvedAssembliesFixedWindows Include="@(ResolvedAssemblies->Replace('\ref\','\lib\'))" />
<ResolvedAssembliesFixedUnix Include="@(ResolvedAssemblies->Replace('/ref/','/lib/'))" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedWindows)" Condition="@(ResolvedAssembliesFixedWindows) != @(ResolvedAssemblies)" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedUnix)" Condition="@(ResolvedAssembliesFixedUnix) != @(ResolvedAssemblies)" />
<ResolvedAssemblies Remove="@(ResolvedAssemblies)" />
<ResolvedAssemblies Include="@(ResolvedAssembliesFixed)" />
</ItemGroup>
</Target>
</Project>
编辑android.csproj文件并添加以下导入
<Import Project="UnsafeCompilerWorkaround.xml"></Import>
然后清理并重建解决方案。
这是 Xamarin.Android 中的一个已知问题。据我所知,目前唯一已知的解决方法是在从 NuGet
.
引用时使用 packages.config
而不是 <PackageReference>
#1356应该会尽快修复它,希望这对您有所帮助。 :)
我正在使用 .Net Standard 在 xamarin
中创建一个应用程序,到目前为止,我已经在我的解决方案中安装了以下 Nuget 包
PCL/.Net 标准包
Android 包
最低 SDK 级别为 Android 5.1
,最高为 Android Oreo 8.1
。
当我 运行 visual studio VS2017 中的应用程序 运行 几秒钟后突然关闭并抛出以下错误
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: Could not load assembly 'System.Runtime.CompilerServices.Unsafe' during startup registration.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: This might be due to an invalid debug installation.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: A common cause is to 'adb install' the app directly instead of doing from the IDE.
我尝试多次清理解决方案并删除 bin 和 obj 文件夹,但我遇到了同样的错误。
我没有写任何代码,因为我只是在迁移项目,所以这个项目是空白的。
我个人认为 Realm
有 System.Runtime.CompilerServices
参考,因此它的创建问题。这是从 nuget
我也有这个错误,但它是在使用 .net 标准库中的 Entity Framework 时出现的。这花了很长时间才整理出来!希望这对你有用。
在 android 项目中添加以下内容作为 XmlFile eg(UnsafeCompilerWorkaround.xml):
<Project>
<Target Name="ReplaceRefAssemblies" AfterTargets="_ResolveAssemblies">
<ItemGroup>
<ResolvedAssembliesFixedWindows Include="@(ResolvedAssemblies->Replace('\ref\','\lib\'))" />
<ResolvedAssembliesFixedUnix Include="@(ResolvedAssemblies->Replace('/ref/','/lib/'))" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedWindows)" Condition="@(ResolvedAssembliesFixedWindows) != @(ResolvedAssemblies)" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedUnix)" Condition="@(ResolvedAssembliesFixedUnix) != @(ResolvedAssemblies)" />
<ResolvedAssemblies Remove="@(ResolvedAssemblies)" />
<ResolvedAssemblies Include="@(ResolvedAssembliesFixed)" />
</ItemGroup>
</Target>
</Project>
编辑android.csproj文件并添加以下导入
<Import Project="UnsafeCompilerWorkaround.xml"></Import>
然后清理并重建解决方案。
这是 Xamarin.Android 中的一个已知问题。据我所知,目前唯一已知的解决方法是在从 NuGet
.
packages.config
而不是 <PackageReference>
#1356应该会尽快修复它,希望这对您有所帮助。 :)