首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在发布模式下构建Xamarin Android应用程序

无法在发布模式下构建Xamarin Android应用程序
EN

Stack Overflow用户
提问于 2019-02-20 07:25:13
回答 1查看 830关注 0票数 2

我正在尝试构建Xamarin Forms Android,但是它没有在Release模式下编译,而Debug工作得很好。

错误细节:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(5,5):Error MSB4018:"LinkAssemblies“任务意外失败。Mono.Linker.Steps.XmlResolutionException:未能处理XML描述:--> Mono.Cecil.AssemblyResolutionException:未能解析程序集:'Prism.Core,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null‘- Mono.Cecil.AssemblyResolutionException:未能解析程序集:'Prism.Core,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null’at Mono.Cecil.BaseAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name,/Users/builder/data/lanes/6102/8255f42f/source/monodroid/external/xamarin-android/external/mono/external/cecil/Mono.Cecil/BaseAssemblyResolver.cs:172中的Mono.Cecil.ReaderParameters参数) 0x0015e在Mono.Linker.AssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference名称,( Mono.Linker.Steps.ResolveFromXmlStep.GetAssembly (Mono.Linker.LinkContext context,Mono.Cecil.AssemblyNameReference assemblyName) 0x00000 in <947dd92f52fa43c1922f96c7b9774bdc>:0 at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies (Mono.Linker.LinkContext context)System.Xml.XPath.XPathNodeIterator迭代器( 0x00010 in <947dd92f52fa43c1922f96c7b9774bdc>:0 at Mono.Linker.Steps.ResolveFromXmlStep.Process () 0x00037 in Mono.Linker.Steps.ResolveFromXmlStep.Process () 0x00037 in <947dd92f52fa43c1922f96c7b9774bdc>:0 -内部异常堆栈跟踪- at Mono.Linker.Steps.ResolveFromXmlStep.Process() 0x000a9 in <947dd92f52fa43c1922f96c7b9774bdc>:0 at Mono.Linker.Steps.BaseStep.Process (Mono.Linker.LinkContext context) 0x00010 in <947dd92f52fa43c1922f96c7b9774bdc>:0 at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) 0x0001c in <947dd92f52fa43c1922f96c7b9774bdc>:0 )在MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline管道),Mono.Linker.LinkContext上下文) 0x00000在<947dd92f52fa43c1922f96c7b9774bdc>:0 at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options,Mono.Linker.ILogger记录器)0x002d4在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () 0x002d4在<947dd92f52fa43c1922f96c7b9774bdc>:0 at Xamarin.Android.Tasks.LinkAssemblies.Execute () 0x0021f在<947dd92f52fa43c1922f96c7b9774bdc>:0 at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 0x00023在/Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/msbuild-15/src/Build/BackEnd/TaskExecutionHost/TaskExecutionHost.cs:573 at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost )Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext,Microsoft.Build.BackEnd.TaskHost taskHost,Microsoft.Build.BackEnd.ItemBucket bucket,Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) 0x001f6 in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/msbuild-15/src/Build/BackEnd/Components/RequestBuilder/TaskBuilder.cs:784 (MSB4018) (VSTSBuild.Droid)

我还注意到它也是在Release模式下构建的,如果我启用了‘使用共享的Mono’,但是如果它被禁用了,那么构建解决方案就有问题了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 08:29:38

好吧,我发现问题出在LinkerSettings身上。以前我的链接器设置是这样的:

代码语言:javascript
复制
<linker>
    <assembly
        fullname="Prism.Core" />
    <assembly
        fullname="Prism.Forms" />
    <assembly
        fullname="Prism.Unity.Forms" />
    <assembly
        fullname="Prism.Plugin.Popups" />
</linker>

我更新到:

代码语言:javascript
复制
<linker>
    <assembly
        fullname="Prism.Forms">
        <type
            fullname="Prism.Common.ApplicationProvider"
            preserve="all" />
        <type
            fullname="Prism.Services.PageDialogService"
            preserve="all" />
        <type
            fullname="Prism.Services.DeviceService"
            preserve="all" />
        <type
            fullname="Prism.Ioc*"
            preserve="all" />
        <type
            fullname="Prism.Modularity*"
            preserve="all" />
        <type
            fullname="Prism.Navigation*"
            preserve="all" />
        <type
            fullname="Prism.Behaviors.PageBehaviorFactory"
            preserve="all">
            <method
                name=".ctor" />
        </type>
        <type
            fullname="Prism.Services.DependencyService"
            preserve="all">
            <method
                name=".ctor" />
        </type>
    </assembly>
    <assembly
        fullname="Prism">
        <type
            fullname="Prism.Navigation*"
            preserve="all" />
        <type
            fullname="Prism.Logging.EmptyLogger"
            preserve="all">
            <method
                name=".ctor" />
        </type>
    </assembly>
</linker>

现在,应用程序也在发布模式上做得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54780906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档