使用 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,选择 NSISProject 或 Inno 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 Code First 默认仍使用 SQLEXPRESS
如何使用适用于 Windows 8 的 Visual Studio Express 2012 创建适用于 Windows XP 的应用程序