如何创建InstallShield LE项目来安装Windows服务?

时间:2012-08-16 20:09:29

标签: visual-studio-2012 windows-services installshield-le

我昨天在MSDN上发布时下载了Visual Studio 2012。我注意到我们2010年的一些项目类型已经消失或不同。我现在最大的不同是删除了Windows Installer项目。现在我们被迫使用InstallShield LE(限量版)。这里的问题是我写了大量的Windows服务,我看不到如何设置InstallShield LE。看来我们(我的公司)将不得不投资专业版的许可证。

有没有人找到在InstallShield LE中安装服务的方法?使用Windows Installer项目时,只需设置自定义操作。

10 个答案:

答案 0 :(得分:160)

对于Visual Studio 2012& InstallShield LE,执行以下操作:

  • 运行InstallShield项目助手,并将服务的主要输出添加到“应用程序文件”部分。
  • 完成项目助手后,双击安装项目第二步下的“文件”项。

Files section

  • 右键单击服务的主要输出,然后转到属性。
  • 单击“COM和.NET设置”选项卡,然后选中“安装程序类”复选框。 enter image description here
  • 点击确定

现在,一旦构建并运行安装,您的服务就会显示在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错误。

enter image description here

答案 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)

我有各种各样的问题。

如下。

  1. InstallShield需要很长时间才能下载
  2. 注册过程很痛苦。
  3. 配置选项令人困惑且过于复杂。
  4. 此线程上接受的解决方案是一个黑客攻击并且它并不总是有效 - 请参阅文档中的1001 - 基本上您需要通过付费专区获取正确的配置选项来安装Windows服务。
  5. 我在别处提到的解决方案 - 放弃InstallShield

    enter image description here

    从那时起非常容易。

    修改:更新 - 从此处安装最新版本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一起使用”,请创建一个与安装项目同名且位于安装项目文件夹内的文件夹。

http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll

的信用

答案 7 :(得分:2)

我在找到答案中提到的添加安装程序的位置时遇到了一些问题。所以这就是如何。

双击Windows服务项目中的服务类 带有文本的空白屏幕“要向您的类添加组件,请从工具箱中拖动它们,然后使用”属性“窗口设置其属性......” 右键单击链接上的任意位置,然后选择“添加安装程序”

见ya

答案 8 :(得分:0)

请记住,如果您计划稍后创建该设置的升级,则上述所有解释都无济于事。升级时InstallShiled LE无法停止正在运行的服务。你不能从Window Service Installer - >做到这一点。 BeforeInstall事件。

答案 9 :(得分:0)

想把它放在这里;

在VS 2015上,执行此操作时,我在重复安装时遇到了1001错误。

此页面上的回答解释说,在较新版本(2012年以后的任何内容)上,显然您需要明确保留安装程序类选项取消选中,然后在安装程序项目的步骤3下的“服务”部分下添加Windows服务:

Error 1001 when installing custom Windows Service