使用Visual Studio 2012创建MSI或安装项目


129

我创建了一个小型应用程序,我想创建一个MSI文件。

Visual Studio 2010中,您在以下项目中具有此项目类型:

其他项目类型 -> 安装和部署 -> Visual Studio安装程序 -> 安装项目

但是,您在Visual Studio 2012中获得的唯一东西是“启用InstallShield受限版”。

您可以更改.NET Framework,但没有任何更改。

为什么现在不存在了?我该如何找回它?有没有新的方法可以做到这一点?


1
如果无法部署它,Visual Studio加载项有什么意义呢?
DevDave

仅供参考,以下是用于创建MSI的最常见替代工具的说明:stackoverflow.com/a/1546941/129130。除了维克斯,它们都有点贵。
SteinÅsmul'14

Answers:


37

要在带有InstallShield Limited Edition的Visual Studio 2012中创建安装项目,请观看此视频

无法安装服务的InstallShield限量版。

“到目前为止,ISLE是最糟糕的安装程序选项,在大多数情况下,最好以且不可能的方式使用升级后的,收费的付费版本是麻烦的。InnoSetup,Nullsoft,Advanced,WiX或几乎任何其他安装程序都更好。如果您进行了一项调查,您会发现没有人在使用ISLE。我不知道你们为什么继续与InstallShield建立联系。这会损害您的信誉。任何花费一半重量的开发人员都知道ISLE是毫无价值的,当您站在它后面时,我们会必须质疑微软的判断。”

由Edward Miller提供(Visual Studio Installer项目扩展中的注释)。

WiX的工具集,它们虽然功能强大是超过对用户不友好的,具有陡峭的学习曲线。甚至还有一个可下载的模板,用于安装Windows服务(请参阅VS2012:Windows服务的安装程序?)。

对于Visual Studio 2013,请参阅博客文章使用Visual Studio创建安装程序


3
按照视频,无法创建Setup.msiVS 2012,更多的帮助..?
AB Bolim

无法安装服务的安装防护罩限量版。WIX工具集虽然功能强大,但却超越了用户的不友好范围,并且学习曲线陡峭。甚至还有用于安装Windows服务的可下载模板。 arstechnica.com/civis/viewtopic.php?f=20&t=1190745
Kiquenet 2014年

@santhoshkumar,您好:在完成MSI窗口设置安装后,我的原始文件(设计和编码)也显示在安装位置。我已经使用Visual Studio 2010开发了此应用程序。安装程序已成功创建,但是在安装了MSI之后,此问题就会发生。请帮我。提前致谢。
dilipkumar1007

68

请参见:

Visual Studio安装项目(vdproj)不会随VS的将来版本一起提供

Windows Installer部署

1 1/2年前宣布,该项目类型被杀死。替代方法是:

  1. 使用VS2008 / 2010解决方案来构建您的安装程序
  2. 切换到其他工具,例如InstallShield或Windows Installer XML

如果我们寻求您的第一个解决方案..我们可以将前提条件添加为.NET 4.5吗?
Sreekumar P 2012年

可能吧 我相信VS在配置文件(XML?)的某个目录中包含了先决条件的定义。您也许可以计算出数据结构,然后为.NET 4.5创建自己的定义。它不会被支持,我真的只是把#1放在那儿指出它是一个选择。就个人而言,作为拥有16年经验的该领域专家,我几乎不喜欢该工具的所有内容,并且我也不会尝试为此付出更多的努力。当我听到微软正在杀死它时,我并不感到难过。
Christopher Painter 2012年

如果您想尝试一下,请看这里:C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ Bootstrapper \ Packages弄清楚它们如何对PublicKey属性进行哈希处理可能是最大的障碍之一。
Christopher Painter 2012年

1
抱歉,“使用VS2008 / 2010解决方案来构建安装程序”实际上是什么意思?
艾伦·麦克唐纳

4
这意味着,如果您的部署项目和应用程序项目位于同一解决方案中,则必须停止这样做。您必须将它们分为两个解决方案,然后将部署解决方案保留在VS2005 / 2008/2010上,并将您的应用程序解决方案移至2012
Christopher Painter

24

您是否尝试过“发布”方法?您只需在解决方案资源管理器中右键单击项目文件,然后从弹出菜单中选择“发布”。这只需几个非常简单的步骤即可创建安装程序。

您可以从项目属性窗口的“发布”选项卡中对安装程序进行更多配置。

注意:此方法仅适用于WPF和Windows Forms应用程序。



我在包含WPF Windows和VC ++ dll的嵌入式项目中做了同样的事情。我的客户要求我在安装程序中包括VC ++可再发行软件包。你能帮我吗?因为我经历了所有向导,但是看不到任何使用此clickOnce部署方法在部署中包括单独的安装程序的选项。
Manish Dubey 2014年

@grantnz我终于找到了选项。我在“ Prjoect属性”->“发布”->“先决条件”选项卡中找到了它。希望您也能找到它。
Manish Dubey 2014年

17

微软已经倾听了Visual Studio中支持安装程序(MSI)的呼声,并发布了Visual Studio Installer项目扩展。现在,您可以在Visual Studio 2013中创建安装程序。从visualstudiogallery 此处下载扩展


2
VS 2012不可以扩展吗?任何完整的源代码实际示例应用程序+设置项目?
Kiquenet 2014年

下载了Installer Projects Extension,它构建了一个简单的msi,可以在短时间内将第三方dll放入GAC。非常简单,易用,基本。
克里斯·米尔斯

1
该堆栈正在询问2012
。– teapeng

5

ISLE(InstallShield限量版)是Visual Studio安装和部署项目的“替代品”,但许多用户认为Microsoft在从Visual Studio 2012(及更高版本)中删除.vdproj支持并支持第三方公司软件方面采取了错误的措施。

许多人要求将其退还(带回基本的安装和部署项目类型Visual Studio Installer),但是Microsoft对我们的声音充耳不闻...真的很难过。

由于WiX确实很复杂,我认为值得尝试一些免费的安装系统-NSISInno Setup。两者都可编写脚本且易于学习-但功能强大,就像原始的SADP。

我为NSIS和Inno Setup创建了一个非常不错的Visual Studio扩展,具有许多功能(智能,语法突出显示,导航栏,直接从Visual Studio编译等)。您可以在www.visual-installer.com上进行尝试(对不起,不接受自我促销:)

下载Inno Setup(jrsoftware.org/isdl.php)或NSIS(nsis.sourceforge.net/Download)并安装V&I(unsigned-softworks.sk/visual-installer/downloads.html)。

所有安装程序都很简单Next / Next / Next ...

在Visual Studio中,选择菜单文件 -> 新建 -> 项目,选择NSISProjectInno Setup,然后将创建一个新项目(包含完整的源代码)。


1
如何安装NSIS和Inno安装程序?5分钟内逐步入门以及VS中的完整源代码示例?
Kiquenet 2014年

1
下载Inno Setup(jrsoftware.org/isdl.php)或NSIS(nsis.sourceforge.net/Download)并安装V&I(unsigned-softworks.sk/visual-installer/downloads.html)所有安装程序都很简单Next / Next / Next在Visual Studio中,选择“文件”->“新建”->“项目”,选择“ NSISProject”或“ InnoSetup”,将创建新项目(包含完整的源代码)。
2014年


2

看一下Visual Studio Installer Deployment文章。它一定会为您提供帮助。

您可以在页面上选择正确的.NET Framework版本。因此,为您打造.NET 4.5。我想Visual Studio 2012就有了。


1
对于Visual Studio 2012,它表示“ InstallShield受限版(ISLE)对Visual Studio开发人员是免费的,并替换了Visual Studio中用于安装和部署的项目模板的功能。 ”。
彼得·莫滕森

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.