我如何创buildInstallShield LE项目来安装Windows服务?

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

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

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

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

文件部分

  • 右键单击您的服务的主要输出,然后转到属性。
  • 点击“COM和.NET设置”选项卡,并勾选“安装程序类”checkbox。 在这里输入图像说明
  • 点击确定

现在,一旦构build并运行安装,您的服务将显示在Windows服务pipe理单元中。

请注意,这里假定您在服务项目中添加了一个“Project Installer”(右键单击服务devise表并单击“添加安装程序”)。 我可以使用Visual Studio 2012 / InstallShield LE在Windows 8上确认这项工作。

我最近用Install Shield LE安装了VS 2012。 起初,我一直在构buildISEXP -5036内部服务器错误(这是在build立一个ISLE项目并通过Install Shield Project Assistant运行之后)。 最终我发现它试图在DVD-5媒体types中创buildMSI,这是它失败的地方。 出于某种原因,从头开始再次创build解决scheme认识到只build立到工作的CD_ROM和SingleImage媒体types。

无论如何纠正5036错误,单击VS 2012中的生成选项卡(顶部菜单),selectconfigurationpipe理器,你应该看到你的IS设置文件被选中的DVD-5configuration。 将其更改为CD_ROM,然后单击closures。 一旦你build立/重build它将完成没有IS 5036错误。

在这里输入图像说明

虽然使用安装程序类checkbox可能适用于某些情况下,您可能会遇到以下错误:

错误1001.指定的服务已存在

以下是关于如何解决此问题的链接摘录:

对于错误:错误1001.指定的服务已经存在

如果安装.NET服务的组件错误地configuration为“.NET安装程序类”设置为是,则会发生此错误。 安装.NET服务的方法是使用Component \ Advanced Settings \ Services视图,而不是“.NET Installer Class”设置。 使组件\高级设置\服务视图中的定义在Windows安装程序ServiceControl和ServiceInstall表中创build条目。 Windows安装程序“InstallServices”操作使用这些条目来安装服务。

如果您的项目是.NET,那么尝试使用InstallShield LE可以使用ServiceProcessInstaller类。

要使其与InstallShield一起使用,您必须进入InstallShield“文件”树并右键单击您的文件。 然后选中“COM和.NET设置”选项卡上的“安装程序类”checkbox。

我已经得到它的工作,但我有一些像Windows 2008R2操作系统的问题。 你的旅费可能会改变。

这里是一个例子: http : //www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

我遇到了各种各样的问题。

如下。

  1. InstallShield需要很长时间才能下载
  2. 注册过程是一个痛苦。
  3. configuration选项是混乱和过于复杂。
  4. 在这个线程上接受的解决scheme是一个黑客,它并不总是工作 – 见文档1001 – 本质上你需要通过付费墙获得正确的configuration选项来安装Windows服务。

我在其他地方提到的解决scheme是放弃InstallShield

在这里输入图像说明

从这一点很容易。

编辑:更新 – 从这里https://wix.codeplex.com/releases/view/115492安装最新版本vs 2013/2015

Visual Studio安装项目作为Visual Studio扩展在VS 2013中。

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

请更新你的解决scheme和项目到VS 2013.如果你仍然在VS 2010,你可能会更好直接升级到VS 2013。

我对Installsheild LE的使用经验是非常古怪,但一旦找出窍门,使用起来会更容易。 不过,我认为限量版是微软和Flexera出售全function版的一种方式。 换句话说,首先我们付给微软大量的钱给Visual Studio,然后他们的合伙人(在犯罪中)给Installsheild。 不好的策略,因为他们不得不带回2013年的设置项目。

我写了关于这个主题:

使用Windows安装程序XML扩充InstallShield – Windows服务

基本上你使用WiX创build一个合并模块来封装这个服务,然后把它添加到你的installshield项目中。 (请务必关联到INSTALLDIR目录,以确保您的文件到达您期望的位置)。 在VM上构build和testing。 小菜一碟。

我正在使用VS2012和Installshield LE弹簧版。 我不必使用Wix。

如果遇到“无法创build与InstallUtilLib.dll一起使用_isconfig.xml”的错误,请创build一个与您的安装项目名称相同的文件夹,并在安装项目文件夹中创build一个文件夹。

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

我只是遇到了一些问题,find答案中提到的添加安装程序的位置。 所以这里是如何。

双击您的Windows服务项目中的服务类项目一个空白的屏幕,其文本为“将组件添加到您的课堂,从工具箱拖动它们,并使用属性窗口设置其属性…”右键单击任何地方,但在链接并select“添加安装程序”

再见

请记住,如果您打算稍后创build该设置的升级,以上所有解释都无济于事。 InstallShiled LE在升级时无法停止正在运行的服务。 您无法从Window Service Installer – > BeforeInstall事件中执行此操作。

想要把这个放在这里;

在VS 2015上,当这样做的时候,我反复安装时遇到了1001错误。

在这个页面上的答案解释说,在较新的版本(2012年以前的任何东西) ,显然你需要明确地离开安装程序类选项取消选中 ,然后添加您的Windows服务在安装程序项目的步骤3下的服务部分:

安装自定义Windows服务时出现错误1001

参考这个链接,这将有助于你

的InstallShield