C# Xamarin UWP调试构建工作正常,但未发布(“未找到嵌入资源”和.NET本机工具链)

C# Xamarin UWP调试构建工作正常,但未发布(“未找到嵌入资源”和.NET本机工具链),c#,xaml,xamarin,xamarin.forms,xamarin.uwp,C#,Xaml,Xamarin,Xamarin.forms,Xamarin.uwp,因此,我现在已经完成了我的Xamarin应用程序的编码,并且在调试构建中一切都很好。然后,我通过存档和签署APK,在Android上测试了发布版,它运行良好,但在尝试构建UWP项目包文件时出现了问题。如果我尝试启动程序,则会出现以下异常: + $exception {Xamarin.Forms.Xaml.XamlParseException: No embeddedresource found for AppPrescribe.App at Xamarin.Forms.Xam

因此,我现在已经完成了我的Xamarin应用程序的编码,并且在调试构建中一切都很好。然后,我通过存档和签署APK,在Android上测试了发布版,它运行良好,但在尝试构建UWP项目包文件时出现了问题。如果我尝试启动程序,则会出现以下异常:

+       $exception  {Xamarin.Forms.Xaml.XamlParseException: No embeddedresource found for AppPrescribe.App
   at Xamarin.Forms.Xaml.XamlLoader.Load(Object view, Type callingType)
   at AppPrescribe.UWP.MainPage..ctor() in D:\Xamarin\P\AppPrescribe\AppPrescribe\AppPrescribe.UWP\MainPage.xaml.cs:line 26
   at AppPrescribe.UWP.AppPrescribe_UWP_XamlTypeInfo.XamlTypeInfoProvider.Activate_4_MainPage() in D:\Xamarin\P\AppPrescribe\AppPrescribe\AppPrescribe.UWP\obj\x86\Release\XamlTypeInfo.g.cs:line 255
   at Xamarin.Forms.Platform.UAP.Xamarin_Forms_Platform_UAP_XamlTypeInfo.XamlUserType.ActivateInstance()
   at __Interop.ReverseComStubs.Stub_19(Object __this, Void** unsafe_returnValue__retval, IntPtr __methodPtr)}  Xamarin.Forms.Xaml.XamlParseException
我还返回到
MainPage.xaml.cs
文件中的UWP项目,我的光标放在
LoadApplication(new-App.App())旁边
主页
构造函数中

如果我尝试继续创建应用程序包,应用程序会在测试阶段崩溃多次。(同样,我在调试和发布之间没有更改任何代码)

我错过了什么? 如果这是一个愚蠢的解决方案,请原谅我

我试过:

  • 使用删除并重新添加对my.NET类库的引用 共享代码,然后执行清理和重建
  • 删除bin和obj文件,执行清理和重建
  • 卸载调试应用程序并执行清理和重建
但我还是犯了同样的错误

编辑:如果我取消选中“使用.NET本机工具链编译”,则应用程序可以正常编译,并在调试中运行,但我无法创建应用程序包,因为Windows应用程序认证未通过测试的二进制分析器端。 如果我让它保持选中状态(与优化代码一起),然后进行调试,应用程序将进入中断模式,我会得到这个异常:


DischemPrescription.UWP.exe:0xC000027B中0x101F43FA(Windows.UI.Xaml.dll)处未处理的异常:发生了应用程序内部异常(参数:0x0352CD90,0x00000002)。

当您将PCL项目更新为.Net Standard时发生的异常。如果打开PCL的csproj文件,您将看到Xaml和Xaml.cs连接,如

</Compile>
    <Compile Include="OverviewPage.xaml.cs">
    <DependentUpon>Overview.xaml</DependentUpon>
</Compile>

Xamarin->UWP中关于图像和资源的类似报告通过更改工具链(使用.Net本机工具链-可以在项目的构建属性中设置)@auX解决。它已在构建属性中选中。我现在检查了它,当我调试时它似乎正在工作。尽管我猜这并不完全是一件好事,但我的意思是停用.NET本机工具链。您是否尝试取消选中调试模型中的
Optimize code
选项?@NicoZhu MSFT调试模型默认情况下会同时取消选中这两个选项,这就是调试模型运行良好的原因。如果我在发布模型中取消选中这些选项,Windows应用程序认证会在制作应用程序包时给出一个漂亮的红色“失败”评级,如果我想提交到应用商店,这可能是不好的。这些是微软需要修复的bug吗?谢谢你的输入!我必须告诉你,当我创建这个项目时,我选择了.NET标准库而不是PCL。(因为Visual Studio不再为您提供在创建跨平台项目时选择PCL的选项)。但是我确实在所有没有它的类上面添加了
[XamlCompilation(XamlCompilationOptions.Compile)]
。唯一没有它的是.NET标准库中的MainPage.xaml.cs和App.xaml.cs。我还是会出错
  <EmbeddedResource Update="OverviewPage.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
[XamlCompilation(XamlCompilationOptions.Compile)]