Visual Studio 2012的Windows服务.vdproj项目迁移

29

我正在尝试将我的解决方案迁移到Visual Studio 2012,其中一个项目类型是.vdproj。

根据这个链接,这种项目类型在Visual Studio 2012中不受支持: MSDN表示他们建议您使用InstallShield有限版来为Visual Studio添加安装程序。

问题是,当我在VS2012中打开我的解决方案并尝试向其中添加新的“启用InstallShield Limited Edition”项目时,我会收到错误消息:

创建项目'test'...项目创建失败。

Enter image description here

Enter image description here

为什么我无法将这种类型的项目添加到我的解决方案中?

如果我创建一个新的空解决方案,我也无法在其中创建InstallShield项目。

我将尝试下载InstallShield limited edition并查看它是否有任何作用。

我尝试了那个InstallShield下载,并添加了两种额外的项目类型,但我无法创建它们中的任何一个。我能够轻松地向我的解决方案中添加普通网站项目,但无法添加部署项目。

安装程序的名称相同,但这个提示我重新启动。重新启动后,我可以添加一个InstallShield项目,但它会在自己的解决方案中创建。所以,现在看来我必须弄清如何使用它,然后就可以开始了。

看起来,限量版不支持安装Windows服务。


1
http://blog.deploymentengineering.com/2011/01/augmenting-installshield-using-windows_19.html - Christopher Painter
1
是的,我发明了它。 :) http://blog.iswix.com/2011/01/augmenting-installshield-using-windows_19.html - Christopher Painter
非常感人,谢谢您的帮助先生! - Andrew Walters
我没有针对LE的博客文章。请发送电子邮件至chrpai@iswix.com,我会帮助您解决问题。 - Christopher Painter
这个对我解决了问题:https://dev59.com/EWct5IYBdhLWcg3wkuPE - Manuel Alves
显示剩余2条评论
3个回答

15

这可能会很冗长和乏味,因为需要许多步骤,但我想写一篇文章,介绍如何从Windows服务安装程序.vdproj移动到Visual Studio 2012中可用的新InstallShield LE。

第1步:创建合并模块(.msm)

按照此指南的步骤进行操作。

注意事项:

  • 您需要安装WiX 3.6isWiX
  • IsWiX的最新版本不会在Visual Studio 2012中启用“工具”菜单项。编辑文件:C:\ProgramData\Microsoft\MSEnvShared\AddIns\IsWiXAddin.Addin(XML),并克隆HostApplication元素,然后将10.0更新为11.0。
  • 在指南的第8步中,它引用了一个代码选项卡。这已经移动到左侧菜单底部的XML编辑器项目中。
  • 我在我的安装中将MergeRedirectFolder保留为空白。

以下是我的isWix文件视图:

输入图像描述

完成指南后,您应该有一个空的.wxs文件,类似于以下内容:

输入图像描述

使用此处提取的Component XML元素,您应该得到一个如下所示的.wxs文件:

输入图像描述

点击“生成”按钮,您现在应该有一个.msm文件。

步骤2:将合并模块添加到InstallShield

  1. 按照向导设置基本安装信息,例如公司和版本信息。
  2. 在ISLE中找到可再分配资源视图。右键单击列表并选择浏览模块。找到并添加您的模块后,右键单击模块并选择属性。将目标文件夹下拉菜单设置为INSTALLDIR。我不得不将我的设置为创建用于安装路径的最低级别文件夹,因此您可能需要进行一些实验。
  3. 构建项目,并在虚拟机上测试

可再分发屏幕

输入图像描述

如果您遇到路径过长的错误,则可能需要将发布位置更改为接近根的位置。

输入图像描述

这里是所有构建错误的列表供参考。

现在,您应该能够运行您的安装程序并安装/启动Windows服务了。与.MSI文件相比,这需要更多的工作,但我们已经在Visual Studio 2010中成功生成它了,总体来说还算不错。


对于第一步,该指南讲解了如何使用 VS 2010 创建合并模块。你不能在 VS 2012 中完成吗?我在 VS 2012 中没有看到合并模块项目类型。 - PositiveGuy
我不明白你的指示中提到要使用VS 2010来完成所有这些转换...为什么我们不能通过2012来完成,也就是说上面的所有步骤? - PositiveGuy
@CoffeeAddict 你应该可以使用VS2012来完成这个指南,我只是不想在我的回答中包含Chris的整个教程,因为它已经写好了。请查看注释以了解您需要对配置文件进行的更改。 - Andrew Walters
谢谢安德鲁。另外,你在第一个要点中提到的克隆是什么意思?你要克隆什么,为什么要这样做,以及如何实现? - PositiveGuy
还有,我是否仍需要在VS 2012中安装WiX 3.6和isWiX,或者这已经包含在InstallShield LE中了?抱歉我的无知,但是关于所有这些部分的阅读材料太多了,很容易混淆。 - PositiveGuy
显示剩余18条评论

7

虽然没有易于操作或得到官方支持的方法可以在Visual Studio 2012中解决这个问题,但是使用Visual Studio 2013的用户可以在Visual Studio Gallery下载一个来自微软的扩展。


1
感谢您的解决方案。 - Rohit Arora

0

感谢提供链接。如果您与我一样遇到迁移Web服务安装程序的问题,我很乐意尝试帮助您解决它。 - Andrew Walters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接