C# WiX安装程序和自定义操作
我有一个不是那么简单的Windows服务(C#)的应用程序。我使用Visual Studio 2008创建了一个安装程序,它负责在客户端计算机上安装服务,但使用Visual Studio部署项目有两个缺点:C# WiX安装程序和自定义操作,c#,windows-services,wix,C#,Windows Services,Wix,我有一个不是那么简单的Windows服务(C#)的应用程序。我使用Visual Studio 2008创建了一个安装程序,它负责在客户端计算机上安装服务,但使用Visual Studio部署项目有两个缺点: 我似乎无法让安装程序使用MSBuild生成(我尝试了DevEnv.exe方法)。该服务是一个大得多的项目的一小部分,我希望MSI文件的构建与我的构建同时进行。我已经在其他安装程序中使用了WiX,但是这个特定的应用程序需要在安装过程中进行配置 在安装windows服务时,VS2008的部署项目
非常感谢您完全可以使用WiX安装和启动服务-我每天都在这样做:-) 查看和元素(如果需要指定更多,则还有更多) 基本上,您需要首先将服务文件(YourService.exe)定义为组件中的文件,然后除此之外还需要指定ServiceInstall(可能还有ServiceControl)元素
<Component Id='YourServiceComponent' Guid='.....' DiskId='1'>
<File Id='YourServiceEXEFile' Name='YourService.exe'
src='(path to your EXE)/YourService.exe' KeyPath='yes'/>
<ServiceInstall Id='YourServiceInstall' Name='YourServiceName'
Description='.....' ErrorControl='normal'
Start='auto' Type='ownProcess' Vital='yes' />
<ServiceControl Id='UninstallYourService' Name='YourServiceName'
Remove='uninstall' Wait='yes' />
</Component>
然后,您需要将此组件添加到正在安装的安装中的一个功能中—仅此而已
Marc你的问题1的答案是肯定的,但有点牵扯其中。您可以定义对话框以使用和存储it会话属性从用户收集信息。可以使用将这些对话框插入到流中。然后,您可以创建一个vb脚本CustomAction,并使用这些会话属性执行任何操作。查看更多信息。有关WiX服务控制节点的注意事项:
如果您的服务依赖于安装程序放入GAC的程序集,那么它将无法启动。由于某些原因,WiX会在将程序集发布到GAC之前安排StartService操作,因此如果是这种情况,您需要编写一个自定义操作来启动服务。Hi Marc,感谢您的回复。我已将服务安装部件拆下。我遇到的问题是向用户显示一个屏幕,用户可以在其中输入一些配置信息,然后将这些信息保存到磁盘。我希望这是安装包的一部分。如果我的问题不清楚,请道歉。嗨,谢谢你的回复。我想我需要找到一种替代方法来实现这一点,因为需要通过VBScript(加密、与SQLite db对话、与WCF服务对话)很难实现。我想我将使用Wix做一个基本的安装程序,并有一个设置应用程序来管理安装后服务启动的设置。