苏飞论坛

标题: 合并程序集时出错: ILMerge.Merge: ERROR!!... 问题详解 [打印本页]

作者: 范范    时间: 2018-3-13 11:06
标题: 合并程序集时出错: ILMerge.Merge: ERROR!!... 问题详解
在vs2014中,生成网站是正常的,但是发布web网站时,出现错误如下:

[C#] 纯文本查看 复制代码
错误        35        合并程序集时出错: ILMerge.Merge: ERROR!!: Duplicate type 'Home_Alipay_Default' found in assembly 'App_Web_ml1dqhbg'.        aspnet_merge        0        0        WAP




查找资料,一直很多都说是 在生成的时候有这个错,但是我的生成是正常通过的,然后就尝试处理问题。


在资料中,一直说是,已经存在一个相同类型的 Home_Alipay_Default’, 删除其中一个,或者将文件重命名一下就行。


于是我就拿着Home_Alipay_Default
在项目中,整个搜索,发现整的存在两个一样的  Inherits="Home_Alipay_Default"
其中一个页面,的确是  Default  另一个是pay  我就将pay页面给删除了,尝试了发布成功了。
然后我尝试将另一个页面 pay, 查找发现,存在Pay的cs(即:Home_Alipay_Pay),   给调整了下,调整为Inherits="Home_Alipay_Pay",   重新发布,也是可以的。


以上根据资料的说法,这样问题的出现,是这样解释的,我就直接复制了,如下:


意思是在"App_Web_ml1dqhbg"中已经存在一个相同类型的"Home_Alipay_Default" 。将其删除,就ok了,大概就是临时目录的意思。里面的bin目录下还是跟直接发布一样有好多的随机dll。
如果生成成功就没有了那么多的临时dll了,但是生成的时间要比直接生成稍微那么长点。我想当然一次:
其工作原理应该是把直接生成时产生的随机dll然后再次合并程序集为一个自己命名的dll。




出现这种问题,很多的可能就是重新复制了一个页面,  但是没有调整页面上的 Inherits 命名 导致的问题,记得在复制页面时,将页面名称调整了,  
aspx页面上的 Inherits调整了,cs文件中也要跟着调整才行







作者: 站长苏飞    时间: 2018-3-13 14:09
不建议完全复制文件,应该是新建一个,然后进行复制粘贴部分内容。直接复制经常会有这样那样的问题
作者: 范范    时间: 2018-3-13 20:49
是的,都是太懒,直接复制一个页面,或者调整页面名称都是不正确的做法,一不小心就会出现问题




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4