在VS2010迁移问题中设置项目

时间:2011-01-25 12:21:20

标签: .net visual-studio-2010 windows-services setup-project

我已经从VS2008迁移到了VS2010。安装Windows服务过去是轻而易举的,现在程序很糟糕。首先,我升级的安装项目导致MSI与使用2008构建的MSI不兼容。实际上有两个原因:组件GUID在某处以某种方式被更改,如果您将MSI作为更新运行,则会导致大多数DLL被删除(不是全新安装,这可行......有时候,请继续阅读)。 但是,嘿,我使用一个postbuild脚本来改变我的MSI,与InstallExecuteSequence table同样的东西,没有汗水......对。 其次,您会收到“Service allready exists”错误,因为您正在安装的Windows服务在更新期间未停止或删除,但安装程序会尝试在注册表中注册该服务。 但是,嘿,没问题,改变我的自定义操作来停止服务并删除注册表项(最后一部分通过启动一个新进程非常难看,它使用一些参数调用sc.exe,而不显示控制台......很好)。 所以现在我的Windows服务升级过程中没有错误。是的,关闭机票,继续前进。不是那么快:因为服务没有停止在复制文件之前,必须重新启动系统以在服务已经运行时完成安装。那么现在我们的客户必须重新启动整个服务器,导致所有正在运行的进程停机吗?当然不能接受。

很好的工作MS,这从来都不是VS2008的问题!您是否尝试过测试Windows服务的安装程序?当然希望你读这个......

足够的抱怨,我有截止日期:如何在复制所有文件之前停止我的服务? 移动MSI的InstallExecuteSequence表中的一些项目?谁知道哪些?或者有没有人知道解决我的问题的安装项目的MS修复?

1 个答案:

答案 0 :(得分:0)

废弃VS安装项目并转到WiX。我在VS的安装项目中遭受了多年的痛苦之后就这样做了,我花了不到一天的时间就完成了我的WiX项目并准备好生产。

您可以首先将现有的.msi逆向工程到WiX项目中,然后手动编辑它并切换到WiX UI对话框并应用人类可读的名称,而不是VS安装程序项目MSI中类似长guid的东西。< / p>

http://wix.codeplex.com/下载3.5(截至2011年1月的当前稳定版) - 你永远不会回头。