近来做Web项目,VS2005中发布网站时默认发布大批的程序集,这给升级网站时造成很大麻烦,所以偶从MS下载了个WebDeploymentProject的插件(下载地址http://download.microsoft.com/download/c/c/b/ccb4877f-55f7-4478-8f16-e41886607a0e/WebDeploymentSetup.msi),安装完毕以后乐滋滋的运行,结果很郁闷,出个“aspnet_merge.exe已退出,代码为1”的莫明其妙的错误,上网查了半天,都说是在自定义属性的描述中有中文的缘故,比如[WebMethod(Description="测试方法")]这样子,可是偶的自定义描述都是用的E文的,查了良久还是未果,只好自己动手了。
找到那个出错的程序aspnet_merge.exe,位置X:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0。查看了其帮助说明,开始运行。
(1)aspnet_merge d:\project\mmc -o mmc.dll
结果:
error 1008 : The PrecompiledApp.config file is mission. Make sure the application has been precompiled with the Aspnet_compiler tool.
先要Compile是吧,OK,继续找到Compile工具,位置%Windir%\Microsoft.NET\Framework\v2.0.50727\。照旧按照帮助说明开始运行Compile。
(2)aspnet_compiler d:\project\mmc -v /mmc -u -f
结果OK。
继续执行(1),结果如下:
An error occurred when merging assemblies : ILMerge.Merge: ERROR!!: Duplicate type '_Default' found in assembly 'App_Web_knnbg0wh'。
呵呵,结果出来了,原来这个aspnet_merge默认要使用强命名,网站中不能出现同名的类,由于我的几个网站目录下都有Default页面,导致merge出错。
解决了上述同名问题后,运行,一切正常,呵呵,感觉VS的IDE的出错信息还是有很多让人摸不着头脑的,遇到这种问题只能靠手动才行了,VS还是有待改进滴~
转载于:https://www.cnblogs.com/lmjob/archive/2008/03/23/1118768.html