首页 文章

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

提问于
浏览
103

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

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

11 回答

  • 2

    我有各种各样的问题 .

    如下 .

    • InstallShield需要很长时间才能下载

    • 注册过程很痛苦 .

    • 配置选项令人困惑且过于复杂 .

    • 这个线程上接受的解决方案是一个黑客攻击它并不总是有效 - 请参阅文档中的1001 - 基本上你需要通过付费专区来获得正确的配置选项来安装Windows服务 .

    我在别处提到的解决方案就是放弃InstallShield

    enter image description here

    从那时起非常容易 .

    编辑:更新 - 从此处安装最新版本https://wix.codeplex.com/releases/view/115492 for vs 2013/2015

  • 4

    Visual Studio安装项目作为Visual Studio扩展在VS 2013中重新开始 .

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

    请将您的解决方案和项目更新到VS 2013 . 如果您还在VS 2010中,那么直接升级到VS 2013可能会更好 .

    我对Installsheild LE的体验是它非常古怪但是一旦你弄明白这个技巧,就会更容易使用 . 但是,我认为限量版是微软和Flexera销售全功能版的一种方式 . 换句话说,首先我们向Visual Studio支付了大量资金,然后为他们的合作伙伴(犯罪)支付更多资金用于Installsheild . 糟糕的策略没有成功,因为他们不得不在VS 2013中恢复设置项目 .

  • 0

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

    • 运行InstallShield项目助手,并将服务的主要输出添加到“应用程序文件”部分 .

    • 完成项目助手后,双击安装项目第二步下的"Files"项 .

    Files section

    • 右键单击服务的主输出,然后转到属性 .

    • 单击"COM and .NET Settings"选项卡,然后选中"Installer Class"复选框 .
      enter image description here

    • 单击“确定”

    现在,一旦构建并运行安装,您的服务将显示在Windows服务管理单元中 .

    请注意,这假设您向服务项目添加了“项目安装程序”(右键单击服务设计单并单击“添加安装程序”) . 我可以使用Visual Studio 2012 / InstallShield LE在Windows 8上确认这项工作 .

  • 2

    我最近用Install Shield LE安装了VS 2012 . 起初,我在构建之后不断收到ISEXP -5036内部服务器错误(这是在设置ISLE项目并运行Install Shield Project Assistant之后) . 最终我发现它试图在DVD-5媒体类型中创建MSI,这是它失败的地方 . 出于某种原因,从头开始再次创建解决方案无论如何都认为只能构建适用的CD_ROM和SingleImage媒体类型 .

    无论如何要纠正5036错误,单击VS 2012(顶部菜单)中的Build选项卡,选择配置管理器,您应该看到在DVD-5配置中选择了您的IS设置文件 . 将其更改为CD_ROM并单击关闭 . 一旦你构建/重建它将完成没有IS 5036错误 .

    enter image description here

  • 6

    虽然使用安装程序类复选框可能适用于某些实例,但您可能会遇到以下错误:

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

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

    For Error:Error 1001.指定的服务已存在如果安装.NET服务的组件未正确配置且“.NET Installer Class”设置为Yes,则会发生此错误 . 安装.NET服务的方法是使用Component \ Advanced Settings \ Services视图,而不是“.NET Installer Class”设置 . 在Component \ Advanced Settings \ Services视图中进行定义会在Windows Installer ServiceControl和ServiceInstall表中创建条目 . Windows Installer“InstallServices”操作使用这些条目来安装服务 .

  • 0

    如果您的项目是.NET,那么请尝试将ServiceProcessInstaller类与InstallShield LE一起使用 .

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

    我已经让它工作了,但我在Windows 2008R2等操作系统上遇到了问题 . 你的旅费可能会改变 .

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

  • 3

    我写过这个主题:

    Augmenting InstallShield using Windows Installer XML - Windows Services

    基本上,您使用WiX创建一个合并模块来封装服务,然后将其添加到您的installshield项目中 . (确保与INSTALLDIR目录关联,以确保您的文件到达您期望的位置) . 在VM上构建和测试 . 小菜一碟 .

  • 160

    我正在使用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的积分

  • 4

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

    双击Windows服务项目中的服务类一个空白屏幕,其中包含“向组中添加组件,从工具箱中拖动组件并使用”属性“窗口设置其属性...”右键单击任何位置但在链接上并选择“添加安装程序”

    拜拜

  • 2

    请记住,如果您计划稍后创建该设置的升级,则上述所有解释都无济于事 . 升级时InstallShiled LE无法停止正在运行的服务 . 您无法从Window Service Installer - > BeforeInstall事件中执行此操作 .

  • 24

    想把它放在这里;

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

    本页上的答案解释了 newer versions (anything past 2012) ,显然您需要明确保留 installer class 选项 unchecked ,然后在安装程序项目的步骤3下的服务部分下添加您的Windows服务:

    Error 1001 when installing custom Windows Service

相关问题