Fork me on GitHub

VS2008生成安装包问题:验证时出错。HRESULT = '80004005'

   最近在做接口程序,Web服务器又不能访问外网,只能通过另一台有网的服务器转出去。折腾了几天,真是受不了。还好接近尾声了,碰到个很有意思的问题。

在最后生成服务的时候报错,HRESULT = '80004005'。还好有Google,不然不知道啥时才能解决呢。

【产生原因】

解决方案中的某些项目已被其他版本的vs修改,如当前解决方案是使用vs2008创建使用的,而解决方案中的某些项目被vs2010打开修改,当重新用vs2008打开项目并生成安装包时,出现此错误。


【处理方法】

         使用外部文本编辑器如记事本打开相关项目文件(*.csproj),即上述所说的{关注此项目名字} 

 

找到类似行: 

 

<Project ToolsVersion="4.0"DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

 

<OldToolsVersion>3.5</ OldToolsVersion> 

 

修改它们: 

 

<Project ToolsVersion="3.5" DefaultTargets="Build"xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

 

<OldToolsVersion>2.0</ OldToolsVersion>  

 

...然后重新加载项目文件,重新生成安装程序,一切都应该恢复正常,假设你有没有其他隐藏的问题的话!

 

 转自:http://hi.baidu.com/jx_xcbw/blog/item/b687181e7a1e171e304e15f0.htmls 

 

PS:还有几个问题

1.安装的时候需要登录。解决办法:在 serviceProcessInstaller1中把属性Account改为LocalSystem

2.如何安装。解决办法: 在VS命令提示符中,找到安装的服务路径,输入InstallUtil  服务文件名.exe。

3.需要手动安装。解决办法:在安装程序中,右键“视图”->“添加自定义操作”,出现的对话框中,选中“应用程序文件夹”,再选中其中的InstallUtil.exe文件,添加好后,会在安装操作下面多出一个InstallUtil.exe的分支。点一下它,在右边的属性页里,设置Arguments=“ 你的Windows服务文件名”。


2011.10.20日补充

ServerInstall服务参数说明:
Description:描述,显示在服务列表的描述中。
DisplayName:显示名称,显示在服务列表中。
ServiceName:服务名称,显示在安装列表中。

posted @ 2011-06-14 14:54  idoku  阅读(1224)  评论(1编辑  收藏  举报