我们正在.net 上构建一个应用程序,它是一个使用.net 3.5 的图像查看器应用程序。此应用程序将与其他图像一起在 CD 上。
我的问题是,当您在不包含 .NET 框架的机器上插入 CD 时,是否可以自动运行此应用程序。
或任何其他构建从 CD 运行的应用程序的方法。
我们正在.net 上构建一个应用程序,它是一个使用.net 3.5 的图像查看器应用程序。此应用程序将与其他图像一起在 CD 上。
我的问题是,当您在不包含 .NET 框架的机器上插入 CD 时,是否可以自动运行此应用程序。
或任何其他构建从 CD 运行的应用程序的方法。
自动运行是 Windows 的一项功能。它实际上与.NET 没有任何关系。您可以通过将适当的文件放在 CD 的根目录中来使用它。
见:http ://en.wikipedia.org/wiki/AutoRun
要在未安装 .NET 框架的情况下执行 .NET 应用程序,请将 Autorun.inf 指向您的应用程序的安装程序,该安装程序也将部署在 CD 上。
当应用程序找不到所需的库时,将无法直接运行。
您可以做的是创建一个不依赖于 .NET 的引导程序,包括框架安装程序。
因此,当 CD 自动运行时,运行引导程序,引导程序将运行安装程序。安装后,运行应用程序。
不,您不能在未安装 .NET Framework 的计算机上运行 .NET 应用程序。在我看来,这是一条硬性规定,而且非常直观。不知何故,这个问题仍然被问了很多。
但 Auto Run 与 .NET Framework 无关。这是 Windows 操作系统提供的一项功能,旨在直接从插入的安装介质运行您的设置/安装程序,而无需任何类型的用户交互。
所以你应该做的是为你的 .NET 应用程序创建一个安装程序。您可以在 Visual Studio 中执行此操作:只需创建一个安装项目而不是 Windows 窗体应用程序。安装程序将负责检测计算机是否安装了适当版本的 .NET Framework,并在必要时将其与应用程序一起安装。安装引导程序将能够在没有安装 .NET Framework 的情况下运行,因此您可以创建一个autorun.inf
文件,简单地指定setup.exe
为要自动启动的应用程序。
我已经使用单声道来执行此操作几次,而不是使用另一个答案中提到的静态链接,而是通过在 cd (或其子集)上包含单声道分布。Mono 在修改注册表、system32 等方面似乎并没有做太多的事情。所以你可以做一个 if 的 xcopy 部署,或者在这种情况下进行 CD 部署。你最终会运行 mono.exe
我认为 Mono 支持某种形式的不需要安装的静态链接。但我自己从未尝试过。