我昨天在MSDN上发布时下载了Visual Studio 2012。我注意到我们2010年的一些项目类型已经消失或不同。我现在最大的不同是删除了Windows Installer项目。现在我们被迫使用InstallShield LE(限量版)。这里的问题是我写了大量的Windows服务,我看不到如何设置InstallShield LE。看来我们(我的公司)将不得不投资专业版的许可证。
有没有人找到在InstallShield LE中安装服务的方法?使用Windows Installer项目时,只需设置自定义操作。
答案 0 :(得分:160)
对于Visual Studio 2012& InstallShield LE,执行以下操作:
现在,一旦构建并运行安装,您的服务就会显示在Windows服务管理单元中。
请注意,这假设您向服务项目添加了“Project Installer”(右键单击服务设计单并单击“添加安装程序”)。我可以使用Visual Studio 2012 / InstallShield LE在Windows 8上确认这项工作。
答案 1 :(得分:24)
我最近使用Install Shield LE安装了VS 2012。起初,我在构建之后不断收到ISEXP -5036内部服务器错误(这是在设置ISLE项目并运行Install Shield Project Assistant之后)。最终我发现它试图在DVD-5媒体类型中创建MSI,这是它失败的地方。出于某种原因,从头开始再次创建解决方案无论如何都认为只能构建适用的CD_ROM和SingleImage媒体类型。
无论如何要纠正5036错误,请单击VS 2012中的“构建”选项卡(顶部菜单),选择配置管理器,您应该会看到在DVD-5配置中选择了IS设置文件。将其更改为CD_ROM并单击关闭。一旦你建立/重建它将完成没有IS 5036错误。
答案 2 :(得分:6)
虽然使用安装程序类复选框可能适用于某些实例,但您可能会遇到以下错误:
错误1001.指定的服务已存在
以下是link关于如何解决此问题的摘录:
错误:错误1001.指定的服务已存在
如果安装.NET服务的组件是,则会发生此错误 错误配置“.NET Installer Class”设置为Yes。该 安装.NET服务的方法是使用Component \ Advanced Settings \ Services视图,而不是“.NET Installer Class”设置。 在Component \ Advanced Settings \ Services视图中进行定义 在Windows Installer ServiceControl中创建条目 ServiceInstall表。这些条目由Windows使用 安装程序“InstallServices”操作以安装服务。
答案 3 :(得分:4)
如果您的项目是.NET,那么请尝试将ServiceProcessInstaller类与InstallShield LE一起使用。
要使其与InstallShield一起使用,您必须进入InstallShield“文件”树并右键单击您的文件。然后在“COM和.NET设置”选项卡上选中“安装程序类”复选框。
我已经开始工作,但我在Windows 2008R2等操作系统上遇到了问题。您的里程可能会有所不同。
以下是一个示例:http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C
答案 4 :(得分:4)
我有各种各样的问题。
如下。
我在别处提到的解决方案 - 放弃InstallShield
从那时起非常容易。
修改:更新 - 从此处安装最新版本https://wix.codeplex.com/releases/view/115492 for vs 2013/2015
答案 5 :(得分:2)
我写过这个主题:
Augmenting InstallShield using Windows Installer XML - Windows Services
基本上,您使用WiX创建一个合并模块来封装服务,然后将其添加到您的installshield项目中。 (确保与INSTALLDIR目录关联,以确保您的文件到达您期望的位置)。在VM上构建和测试。一块蛋糕。
答案 6 :(得分:2)
我正在使用VS2012和Installshield LE Spring Edition。我没有必要使用Wix。
如果您遇到错误“无法创建_isconfig.xml以与InstallUtilLib.dll一起使用”,请创建一个与安装项目同名且位于安装项目文件夹内的文件夹。
的信用答案 7 :(得分:2)
我在找到答案中提到的添加安装程序的位置时遇到了一些问题。所以这就是如何。
双击Windows服务项目中的服务类 带有文本的空白屏幕“要向您的类添加组件,请从工具箱中拖动它们,然后使用”属性“窗口设置其属性......” 右键单击链接上的任意位置,然后选择“添加安装程序”
见ya
答案 8 :(得分:0)
请记住,如果您计划稍后创建该设置的升级,则上述所有解释都无济于事。升级时InstallShiled LE无法停止正在运行的服务。你不能从Window Service Installer - >做到这一点。 BeforeInstall事件。
答案 9 :(得分:0)
想把它放在这里;
在VS 2015上,执行此操作时,我在重复安装时遇到了1001错误。
此页面上的回答解释说,在较新版本(2012年以后的任何内容)上,显然您需要明确保留安装程序类选项取消选中,然后在安装程序项目的步骤3下的“服务”部分下添加Windows服务: