使用 Visual Studio 2012 创建 MSI 或设置项目

Posted

技术标签:

【中文标题】使用 Visual Studio 2012 创建 MSI 或设置项目【英文标题】:Create MSI or setup project with Visual Studio 2012 【发布时间】:2012-09-04 21:07:25 【问题描述】:

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

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

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

但您在Visual Studio 2012 中获得的唯一内容是“启用 InstallShield 限量版”。

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

为什么没有了?我怎样才能把它拿回来?有没有新的方法可以做到这一点?

【问题讨论】:

如果无法部署 Visual Studio 加载项还有什么意义???! 仅供参考,以下是用于创建 MSI 的最常用替代工具的描述:***.com/a/1546941/129130。除了 Wix,它们都有点贵。 【参考方案1】:

请看:

Visual Studio setup projects (vdproj) will not ship with future versions of VS

Windows Installer Deployment

1 1/2 年前宣布项目类型将被终止。替代方案是:

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

【讨论】:

如果我们选择您的第一个解决方案.. 我们可以将先决条件添加为 .NET 4.5 吗? 可能。我相信 VS 在某处有一个包含先决条件定义的配置文件(XML?)目录。您可能能够计算出数据结构,然后为 .NET 4.5 创建自己的定义。它不会被支持,我真的只是把#1放在那里指出它是一个选项。就个人而言,作为拥有 16 年经验的这一领域的专家,我几乎不喜欢这个工具的所有内容,并且我不会试图给它注入更多的活力。当我听说微软正在扼杀它时,我并不难过。 如果你想试试看这里:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages 弄清楚它们如何散列 PublicKey 属性可能是其中之一最大的障碍。 抱歉,“使用 VS2008/2010 解决方案构建您的安装程序”实际上是什么意思? 这意味着如果您的部署项目和应用程序项目在同一个解决方案中,您将不得不停止这样做。您必须将它们拆分为两个解决方案,并将部署解决方案保留在 VS2005/2008/2010 上,并将您的应用程序解决方案移至 2012 年。【参考方案2】:

要使用 InstallShield Limited Edition 在 Visual Studio 2012 中创建安装项目,请观看 this video。

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

“ISLE 是迄今为止最糟糕的安装程序选项和升级版,阅读 - 付费,版本使用起来很麻烦,而且在大多数情况下是不可能的 情况。 InnoSetup、Nullsoft、Advanced、WiX 或几乎任何 其他安装程序更好。如果您进行了一项调查,您会看到 没有人使用 ISLE。我不知道你们为什么继续交往 与 InstallShield。它会损害您的信誉。任何值得开发者 他一半的盐分都知道 ISLE 一文不值,当你站起来的时候 背后我们不得不质疑微软的判断。”

Edward Miller(Visual Studio Installer Projects Extension 中的 cmets)。

WiX Toolset,虽然功能强大,但对用户不友好且学习曲线陡峭。甚至还有一个用于安装 Windows 服务的可下载模板(参考 VS2012: Installer for Windows services?)。

对于 Visual Studio 2013,请参阅博文Creating installers with Visual Studio

【讨论】:

根据视频,无法在VS 2012 中创建Setup.msi,还有什么帮助..?? 无法安装服务的安装盾限定版。 WIX 工具集,虽然功能强大,但对用户不友好,学习曲线陡峭。甚至还有用于安装 Windows 服务的可下载模板。 arstechnica.com/civis/viewtopic.php?f=20&t=1190745 嗨@santhoshkumar,在完成窗口窗体MSI设置的安装后,我的原始文件(设计和编码)也显示在安装位置。我已经使用 Visual Studio 2010 开发了这个应用程序。安装程序创建成功,但是在安装 MSI 之后,这个问题正在发生。请帮我。提前致谢。【参考方案3】:

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

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

注意:此方法仅适用于 WPF 和 Windows 窗体应用。

【讨论】:

也称为 ClickOnce - msdn.microsoft.com/en-us/library/t71a733d(v=vs.110).aspx 我在包含 WPF 窗口和 VC++ dll 的嵌入式项目中做了同样的事情。我的客户要求我在安装程序中包含 VC++ 可再发行包。你能帮帮我吗?因为我完成了所有向导,但我看不到使用此 clickOnce 部署方法在部署中包含单独安装程序的任何选项。 @grantnz 我终于找到了这个选项。我在 Prjoect Properties ->Publish->Prerequisites 选项卡中找到了它。希望你也能找到。【参考方案4】:

Microsoft 听取了在 Visual Studio 中支持安装程序 (MSI) 的呼声,并发布了 Visual Studio Installer Projects Extension。您现在可以在 Visual Studio 2013 中创建安装程序; download the extension here 来自视觉工作室。

【讨论】:

不是 VS 2012 的扩展?任何完整的源代码真实示例应用程序+设置项目? 已下载安装程序项目扩展,构建了一个简单的 msi,以便在短时间内将第三方 dll 放入 GAC。非常简单,易于使用,做基础。 这个堆栈询问的是 2012 年。【参考方案5】:

ISLE(InstallShield Limited Edition)是 Visual Studio Setup and Deploy 项目的“替代品”,但许多用户认为微软在从 Visual Studio 2012(及更高版本)中删除 .vdproj 支持并支持第三方方面采取了错误的步骤公司软件。

许多人要求将其退回 (Bring back the basic setup and deployment project type Visual Studio Installer),但微软对我们的声音充耳不闻……真的很伤心。

由于 WiX 真的很复杂,我认为值得尝试一些免费的安装系统 - NSIS 或 Inno 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 中,选择菜单 File -> New -> Project,选择 NSISProjectInno Setup,并且将创建一个新项目(具有完整源代码)。

【讨论】:

如何安装 NSIS 和 Inno Setup ? 5 分钟分步入门和 VS 中的完整源代码示例? 下载 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 中选择 File ->新建 -> 项目,选择 NSISProject 或 InnoSetup,将创建新项目(包含完整源代码)。【参考方案6】:

Visual Studio 2013 开发人员取得了一些进展:-D woot woot!请参阅博文Visual Studio Installer Projects Extension

链接和信息取自 Brian Harry 的博文Creating installers with Visual Studio

【讨论】:

【参考方案7】:

查看文章Visual Studio Installer Deployment。一定会对你有所帮助。

您可以在页面上选择正确版本的 .NET 框架。 所以对你来说,让它成为 .NET 4.5。我想这将在 Visual Studio 2012 中出现。

【讨论】:

对于 Visual Studio 2012,它说“InstallShield Limited Edition (ISLE) 对 Visual Studio 开发人员是免费的,它取代了 Visual Studio 中用于设置和部署的项目模板的功能。”。【参考方案8】:

我认为 Deploying an Office Solution by Using ClickOnce (MSDN) 会很有用。

为 Office 2010 创建 Outlook 插件后,问题是将其安装在客户的计算机上,而不使用 ISLE 或其他复杂工具(或昂贵的工具)。

解决方案是使用 Visual Studio 项目的发布工具,如链接中所述。在设置生效之前只需做两件事:

Install the PIA (Primary Interop Assembly) of Office 2010 Install the VSTO 2010 runtime

【讨论】:

以上是关于使用 Visual Studio 2012 创建 MSI 或设置项目的主要内容,如果未能解决你的问题,请参考以下文章

从Visual Studio 2012插件创建连接的查询窗口

Visual Studio 2012无法创建项目

Visual Studio 2012 Code First 默认仍使用 SQLEXPRESS

Visual Studio 2012 条件捆绑

如何使用适用于 Windows 8 的 Visual Studio Express 2012 创建适用于 Windows XP 的应用程序

Visual Studio 2012 项目不会在 2010 年打开