Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打包.NET应用程序,使其在没有.NET的计算机上运行_C#_.net_Redistributable - Fatal编程技术网

C# 打包.NET应用程序,使其在没有.NET的计算机上运行

C# 打包.NET应用程序,使其在没有.NET的计算机上运行,c#,.net,redistributable,C#,.net,Redistributable,我最近一直在尝试在未安装.NET的计算机上部署C#应用程序 我知道在StackOverflow上有很多关于同一主题的问题。以下是其中的一些,我阅读了所有人的回复: 因此,对上述问题的所有回答都表明,没有特定的软件是不可能的,等等。提到的一个软件是。唯一的问题是,在Salamender处理完应用程序后,我似乎无法运行它。我知道这本身是不可能的,因为它需要运行.NET虚拟机。然而,在过去,我已经开发了Java应用程序,并随它们一起发布了整个JVM。令人惊讶的是,它们仍然有效。因此,这不是上述问

我最近一直在尝试在未安装.NET的计算机上部署C#应用程序

我知道在StackOverflow上有很多关于同一主题的问题。以下是其中的一些,我阅读了所有人的回复:

因此,对上述问题的所有回答都表明,没有特定的软件是不可能的,等等。提到的一个软件是。唯一的问题是,在Salamender处理完应用程序后,我似乎无法运行它。我知道这本身是不可能的,因为它需要运行.NET虚拟机。然而,在过去,我已经开发了Java应用程序,并随它们一起发布了整个JVM。令人惊讶的是,它们仍然有效。因此,这不是上述问题的重复,因为我真正的问题是:

我需要打包.NET framework的哪些项目?如果我成功地打包了所有内容,那么将它们放在与我正在运行的应用程序相同的目录中会允许应用程序运行吗

我找到了一个解决办法,那就是。唯一的问题是它有自己的GUI。除此之外,这将是一个完美的适合。那么,谁能告诉我两件事中的一件:

是否有命令行.NET软件包,如果有,在哪里下载

如果没有,或者这样做是不切实际的,那么我需要从.NET安装中复制哪些目录

我知道这些文件和目录是特定于系统的,我的.NET安装可能无法在您的计算机上运行,但如果C#类似于Java,那么这应该是可以实现的。它是?大小不是限制,应用程序及其所有文件是否为1GB,或者是否只有1MB,对我来说都无关紧要

如果没有其他解决方案,我会检查程序的所有依赖项。如果我要打包它们中的大多数,理论上我的应用程序能正常工作吗?

对于.NET,您真的必须安装适当的.NET framework。.NET framework安装包含允许静默安装的命令行选项,例如:

dotnetfx35.exe /q /norestart
有关命令行选项的详细信息,请参见的和


也就是说,大多数安装包将在安装过程中为您处理这些细节。使用合适的安装程序将自动处理此依赖关系。

根据您需要的.NET Framework的不同部分,您可以使用。它支持在不安装JVM的情况下发布运行时,或者您可以静态链接二进制文件以创建本机可执行文件。

如果您计划部署应用程序(并且假设安装过程不需要太复杂),您只需创建(.NETFramework和其他您认为可能需要的东西)

您可以按照这些MSDN文章中描述的步骤进行操作:

中给出了演练

对于更复杂的部署场景(如在应用程序中安装设备驱动程序,或更好的本地化支持),我建议您研究。它是一个用于构建Windows安装包的工具集,您可以使用Visual Studio中的XML文件来配置。WiX还支持各种


介绍VS Setup Project、WiX和InstallShield之间的差异。

工作得非常好!感谢您的帮助!是否有任何命令可以让它显示它已安装了多少,格式为百分比或当前文件提取…等等?我检查了您发布的3.5链接的选项,但在这些行中没有找到任何内容。首先你不想要GUI,现在你想要了?我不想要GUI。文件提取不是必须的,但我想知道是否有命令行风格的百分比提取器,比如说wget。我不确定这是否算作GUI。如果是的话,很抱歉我引起了混乱。这些静态链接器是一个糟糕的主意。你的应用程序将ot受益于安全修复和其他增强功能(ala Windows Update)。