急、急、急、关于在vs2005下使用WebDeployment Project插件发布网站的怪异问题

cs_winnerchen 2011-02-16 05:25:57
最近做一个项目,经理要去发布后要只有一个dll所以就用了WebDeployment Project插件,完了之后编译就报了错误“aspnet_merge.exe”已退出,代码为 1。最后找了半天原因才发现是这句代码的问题:ConfigurationManager.ConnectionStrings["conn"].ConnectionString;(我又重新建了个网站只写了这个就报错,注释掉就ok)。
不要说什么类重名的问题(只有一个页面),命名空间的问题(手动加了命名空间的)。
搞了一天了实在是不知道原因,望有经验的帮忙下。

报错的详细信息是:------ 已启动全部重新生成: 项目: http://localhost/test2/, 配置: Debug .NET ------
正在验证网站
正在生成目录“/test2/”。

验证完成
------ 已启动全部重新生成: 项目: test2_deploy, 配置: Debug Any CPU ------
生成启动时间 2011-2-16 17:24:20。
目标 Clean:
任务“CreateProperty”
已完成执行任务“CreateProperty”。
目标 _PrepareForBuild:
任务“CreateProperty”
已完成执行任务“CreateProperty”。
任务“CreateProperty”
已完成执行任务“CreateProperty”。
目标“_SplitProjectReferencesByType”因出现错误条件而被跳过;('@(ProjectReference)'!='')被作为(''!='')计算。
已跳过目标“_PrepareForBuild”。以前的生成成功。
目标 GetFrameworkPathAndRedistList:
任务“GetFrameworkPath”
已完成执行任务“GetFrameworkPath”。
任务“CreateItem”
已完成执行任务“CreateItem”。
目标 _ResolveReferences:
任务“CreateItem”
已完成执行任务“CreateItem”。
任务“ReadLinesFromFile”因出现错误条件而被跳过;( '%(References_RefreshFile.Identity)' != '' )被作为( '' != '' )计算。
任务“CombinePath”
已完成执行任务“CombinePath”。
任务“Copy”
已完成执行任务“Copy”。
任务“ResolveAssemblyReference”因出现错误条件而被跳过;(Exists('%(References.Identity)'))被作为(Exists(''))计算。
任务“Copy”
已完成执行任务“Copy”。
目标“_ResolveProjectReferences”因出现错误条件而被跳过;('@(NonVCProjectReference)'!='')被作为(''!='')计算。
目标“ResolveAssemblyReferences”因出现错误条件而被跳过;('@(Reference)'!='' or '@(_ResolvedProjectReferencePaths)'!='')被作为(''!='' or ''!='')计算。
目标“_CopyBeforeBuild”因出现错误条件而被跳过;( '$(EnableCopyBeforeBuild)' == 'true' or '@(ExcludeFromBuild)' != '' )被作为( '' == 'true' or '' != '' )计算。
目标 BeforeBuild:
已跳过目标“_PrepareForBuild”。以前的生成成功。
目标 AspNetCompiler:
任务“AspNetCompiler”

命令:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v /test2 -p E:\WebPublish\test\test2 -u -f -c -d E:\WebPublish\test\test2Publish\test2_deploy\Debug\
任务“AspNetCompiler”正在使用“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe”中的“aspnet_compiler.exe”。
要用来预编译 ASP.NET 应用程序的实用工具
版权所有(C) Microsoft Corporation。保留所有权利。


已完成执行任务“AspNetCompiler”。
任务“ToggleDebugCompilation”
Updateing web.config compilation debug = 'True' ...
Successfully updated web.config compilation debug = 'True' ...
已完成执行任务“ToggleDebugCompilation”。
任务“RemoveDir”
目录“E:\WebPublish\test\test2Publish\test2_deploy\Debug\\App_Data”不存在。正在跳过。
已完成执行任务“RemoveDir”。
任务“CreateItem”因出现错误条件而被跳过;('$(UseMerge)' != 'true')被作为('true' != 'true')计算。
目标 BeforeMerge:
已跳过目标“_PrepareForBuild”。以前的生成成功。
已跳过目标“AspNetCompiler”。以前的生成成功。
目标“GenerateAssemblyInfo”因出现错误条件而被跳过;( '@(AssemblyAttributes)' != '' )被作为( '' != '' )计算。
目标 AspNetMerge:
任务“AspNetMerge”
Running aspnet_merge.exe ...
命令:
C:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0\aspnet_merge.exe E:\WebPublish\test\test2Publish\test2_deploy\Debug -o test2_deploy -debug -r -copyattrs
任务“AspNetMerge”正在使用“C:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0\aspnet_merge.exe”中的“aspnet_merge.exe”。
Utility to merge precompiled ASP.NET assemblies.
Copyright (c) Microsoft Corporation. All rights reserved.

An error occurred when merging assemblies: Unresolved assembly reference not allowed: System.Configuration.
C:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0\Microsoft.WebDeployment.targets(574,9): error MSB6006: “aspnet_merge.exe”已退出,代码为 1。
已完成执行任务“AspNetMerge”-- 失败。
已完成在项目“test2_deploy.wdproj”中生成目标“AspNetMerge”-- 失败。

已完成生成项目“test2_deploy.wdproj”-- 失败。

生成失败。

已用时间 00:00:05.21
========== 全部重新生成: 1 已成功, 1 已失败, 0 已跳过 ==========
...全文
237 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs_winnerchen 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 net_lover 的回复:]
另外可以Release模式,而不是Debug
模式进行编译
[/Quote]

现在好了,换了个vs版本,以前是team版的,换了个开发版的就好了。
cs_winnerchen 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
这种错误原因是因为你有两个一样名字的类页面
请选择工具--选项--项目和解决方案--生成并运行--项目输出生成详细信息--下拉列表选择该项目的那个 详细
然后编译发布的时候在下面的输出窗口就看到类名一样的页面,把他们类名改不一样


参考
[/Quote]
我就只有一个页面,哪来的重名。
孟子E章 2011-02-16
  • 打赏
  • 举报
回复
另外可以Release模式,而不是Debug
模式进行编译
孟子E章 2011-02-16
  • 打赏
  • 举报
回复
另外,读取配置文件的方法还有很多,可以尝试下。

Web Deployment Projects版本有2个,可以下载支持中文好的版本

http://blog.csdn.net/net_lover/archive/2006/10/02/1317315.aspx
孟子E章 2011-02-16
  • 打赏
  • 举报
回复
ConfigurationManager.ConnectionStrings["conn"].ConnectionString
你可以改成
<appSettings>
<add key="conn" value="xxxxxxxxxxxxxxx"/>
</appSettings>


System.Configuration.ConfigurationManager.AppSettings["conn"].ToString();
的格式进行测试
wuyq11 2011-02-16
  • 打赏
  • 举报
回复
检查程序,是否有相关配置
Asp.net发布网站
子夜__ 2011-02-16
  • 打赏
  • 举报
回复
这种错误原因是因为你有两个一样名字的类页面
请选择工具--选项--项目和解决方案--生成并运行--项目输出生成详细信息--下拉列表选择该项目的那个 详细
然后编译发布的时候在下面的输出窗口就看到类名一样的页面,把他们类名改不一样


参考

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧