aspnet_merge.exe已退出的问题解决方法

 

问题描述:

帮别人解决一个生成DLL出错的问题,生成过程中出现““aspnet_merge.exe”已退出,代码为 1。
  已完成执行任务“AspNetMerge”-- 失败。”的输出提示。

参考了一个朋友的解决办法,原文地址:http://blog.csdn.net/mathew3625/archive/2007/06/12/1649123.aspx

 

摘抄部分原文如下:

............

当使用Web Deployment Projects工具生成唯一程序集时出现了错误信息“Aspnet_merge.exe Exited with Code 1 Aspnet_merge.exe 退出,错误代码1),这样的信息根本无法让我们办断到底是哪里出了问题。好,下面依次打开VS 2005工具-选项-项目和解决方案-生成并运行,设置“MSBuild 项目生成输出详细信息”,选择“详细”。再次生成Web Deployment Projects项目,注意“输出”框内的信息现在变得非常丰富了,最后导致无法编译的问题终于出来了“An error occurred when merging assemblies: ILMerge.Merge: ERROR!!: Duplicate type ‘_Default’ found in assembly 'App_Web_k5hhsnh0'”,它的意思是说在程序集中发现了相同的类型_Default,经过我检查确实在我们的WEB项目中存在了两个_Default类(在不同的目录中),这样的问题通过一般的生成完成和发布网站肯定都是检测不出来的,运行也是正常的。VS 2005WEB项目默认的把命名空间给去掉了,可以手动增加一个命名空间,cs代码中加入namespace的语句块,另外别忘了在aspx文件的<@page>Inherits中写入对应的[namespace].[类名];经过这样的操作再次编译成一个程序集就没有问题了(备注:这个项目前后一共发现了5对类名称一致的情况,加上命名空间或是改名称就可以解决了)。

..........

 

 

当中“工具-选项-项目和解决方案-生成并运行,设置“MSBuild 项目生成输出详细信息”,选择“详细”。”这个步骤是很重要的,发现具体错误就靠这个设置。

不过多想一下:发现这个选项的“详细”和“诊断”的MyEclipse的输出过程是何其相似!!!

MyEclipse 只是把整个过程都输出了,包括收到影响的所有情况,而不管那些地方是最关键的出错点。

如果MyEclipse 也有这样的“最小”“诊断”这样的东西来设置,不知道有多好!!!

 

总结:

        貌似aspnet_merge.exe已退出的问题都是同名的类或者命名空间的原因。暂时发现的是这样。

你可能感兴趣的:(Web,MyEclipse,assembly,dll,工具,Deployment)