在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文件中也要跟着调整才行
|