3

我想创建一个文件“setup.exe”,其中包含我用 C# 开发的一个应用程序,以及 .Net 框架 4.0 的设置。

这个想法是:当我执行'setup.exe'时,这个会检查计算机上是否安装了.net framework 4.0,如果不安装!

使用 InstallShield 2009。

任何人都知道如何做到这一点?

如果有什么不明白的,请告诉我。

谢谢。

4

5 回答 5

2

有许多用于创建设置的框架。
我最喜欢的是 WIX,你可以从这里下载它: http
://wix.sourceforge.net/ 还有一个使用 C# 创建 WIX 接口的框架,叫做sharpsetup,你可以从这里下载它:http://sharpsetup。 eu/但我不确定它是否适合您的需求,因为目标机器可能没有 .NET 开始(尽管可能在 .NET 2.0 中编写设置,但我不确定)。

学习 WIX 可能需要一些时间,但是一旦你完成了这些,做你想做的事情应该不会太难。

于 2012-03-14T16:12:17.320 回答
2

关于设置,您可以使用 Visual Studio 附带的内置机制,例如,它们允许 setup.exe 自动检查是否安装了所需的框架版本,如果不存在则安装它 - 为了一个好的开始,请参阅MSDN

关于使您的应用程序/EXE 包含 1 个文件,包括所有托管依赖项,您有几个选项:

或者

  • 使用SmartAssembly(商业)之类的工具
    ,它可以嵌入和合并其他东西(无需更改源代码)

或者

  • 您自己在不到 10 行的代码(免费但最少的源代码更改)
    将所有需要的依赖项标记为“嵌入式资源” - 这样它们就包含在 EXE 文件中......您需要设置一个AssemblyResolve处理程序,该处理程序在运行时从 Resources 读取并将所需的 DLL 返回给 .NET 运行时...
于 2012-03-14T16:11:45.640 回答
1

将您的完整(拆分)设置打包在自解压器中是否可行?您可以使用 WinRar 或类似工具来构建带有“自动运行”的压缩 exe。

于 2012-03-14T16:06:00.693 回答
0

我解决了这个问题,创建了一个自定义操作,这将是“打开可执行文件”类型,我在向导的按钮事件中调用了这个自定义操作。

于 2012-03-16T12:31:49.590 回答
0

据我所知,标准的 InstallShield 2009 是不可能的。您必须至少拥有 InstallShield 2010(带有适用于 Visual Studio 2010 的 Installshield 2010 扩展包)。

我不知道是否有办法“破解”它......

于 2012-03-14T16:15:28.447 回答