为 C# 应用程序制作安装程序,并将 .NET Framework 安装程序包含到安装程序中
Posted
技术标签:
【中文标题】为 C# 应用程序制作安装程序,并将 .NET Framework 安装程序包含到安装程序中【英文标题】:Make an Installation program for C# applications and include .NET Framework installer into the setup 【发布时间】:2011-08-30 18:14:24 【问题描述】:我已经完成了我的 C# 应用程序,但是我有一个小问题:
当我尝试在另一台 PC 上运行我的应用程序时,我总是需要安装 .NET Framework 4.0。
在不从互联网安装框架的情况下,有什么办法可以让它工作吗?
我在InnoSetup 之前尝试过用于 VB6 应用程序,但我不确定它是否适用于 .NET 4.0!
有什么想法吗?
【问题讨论】:
你无法摆脱 .net 框架。如果您愿意,您可以为您的应用程序创建一个设置,并在您的设置中包含 .net 框架设置。通过这种方式,您可以避免从互联网下载它。但它会增加您的设置大小。 这不是问题。你知道吗? 就像一个注释.. 确保你不要去 File-New。右键单击您的解决方案,然后单击“添加”->“新建项目”。这样,您将在文件中添加安装项目,而不仅仅是自己创建新项目。 【参考方案1】:使用 Visual Studio 安装项目。安装项目可以自动在您的安装包中包含 .NET 框架设置:
这是我的 windows 窗体应用程序的分步操作:
创建安装项目。您可以使用设置向导。
选择项目类型。
选择输出。
完成。
打开设置项目属性。
选择包含 .NET 框架。
构建设置项目
检查输出
注意: Visual Studio 安装程序项目不再预装 Visual Studio。但是,在 Visual Studio 2013 中,您可以使用以下方式下载它们:
Tools > Extensions and Updates > Online (search) > Visual Studio Installer Projects
【讨论】:
是否可以这样设置,当您单击 Setup.exe 时,它会自动检测是否安装了 .net 4 框架并进行安装。还是必须手动完成? Visual Studio 2012 不再支持这些安装项目。您将被引导下载 InstallShield LE(限量版)。它是免费的,但请注意,如果您从 VS 2010 迁移到 VS 2012,则需要重新构建安装程序。 有一个官方的微软扩展将这个功能添加到vs 2015 visualstudiogallery.msdn.microsoft.com/… 已关注所有内容但出现此错误:ERROR: To enable 'Download prerequisites from the same location as my application' in the Prerequisites dialog box, you must download file 'DotNetFX461\NDP461-KB3102436-x86-x64-AllOS-ENU.exe' for item 'Microsoft .NET Framework 4.6.1 (x86 and x64)' to your local machine. For more information, see http://go.microsoft.com/fwlink/?LinkId=616018.
@nurettin 我发现 VS2017 的文件夹是 C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX471
用于 .NET 4.7.1 安装程序【参考方案2】:
您需要创建安装程序,它将检查用户是否需要 .NET Framework 4.0。您可以使用WiX 创建安装程序。它非常强大且可定制。您也可以使用ClickOnce 创建安装程序 - 使用起来非常简单。它将允许您一键添加安装 .NET Framework 4.0 的要求。
【讨论】:
【参考方案3】:WiX 是新安装人员的最佳选择。如果仅 WiX 在 GUI 方面过于复杂或不够灵活,请考虑使用 SharpSetup - 它允许您在 WPF 的 WinForms 中创建安装程序 GUI,并具有其他不错的功能,如翻译、自动更新程序、内置先决条件、改进的 VS 自动完成功能等等。
(免责声明:我是 SharpSetup 的作者。)
【讨论】:
@ChristopherPainter 在同一件事上做了一些很棒的工作。 blog.iswix.com 但他是免费的!!! 上次我查看 ISWIX 时,它的概念与 SharpSetup 完全不同(这里没有说哪个更好,但显然我认为 SharpSetup 是:-))。他更多的是在单独的工具中编辑 WiX 代码,而 SharpSetup 大量构建在 Visual Studio 和 .NET 之上,这为安装程序提供了更大的灵活性,尤其是在 GUI 部分。另请注意,SharpSetup 有免费版本(有许可证限制)。【参考方案4】:在您的解决方案中包含一个安装项目 (New Project > Other Project Types > Setup and Deployment > Visual Studio Installer
)。它具有包含框架安装程序的选项。看看这个Deployment Guide MSDN post。
【讨论】:
以上是关于为 C# 应用程序制作安装程序,并将 .NET Framework 安装程序包含到安装程序中的主要内容,如果未能解决你的问题,请参考以下文章
检测是不是从在 3.5 上运行的 C# 代码安装了 MSBuild/.net 4?
在我的 .NET 核心控制台应用程序中运行原始 SQL 语句并将结果映射到 C# 变量