我最近一直在尝试在没有安装 .NET 的计算机上部署 C# 应用程序。
我知道 StackOverflow 上有很多关于同一主题的问题。以下是其中一些,我阅读了所有人的回复:
在不安装 .net 客户端配置文件的情况下运行 .net 应用程序?
在 windows XP 中运行 C# windows 应用程序而不安装 .NET Framework
因此,对上述问题的所有答复都表明,没有特定软件等是不可能的。提到的一种软件是Salamander .NET Linker。唯一的问题是,在 Salamender 处理该应用程序后,我似乎无法运行该应用程序。我知道这本身是不可能的,因为它需要 .NET 虚拟机才能运行。然而,在过去,我制作了 Java 应用程序,并与它们一起发布了整个 JVM。令人惊讶的是,它们仍然有效。所以这不是上述问题的重复的原因是因为我真正的问题是:
我需要打包 .NET 框架的哪些项目?如果我确实设法打包所有内容,是否将它们放在与我正在运行的应用程序相同的目录中允许应用程序运行?
我找到了一个解决方案,即Microsoft .NET Redist Package。唯一的问题是它有自己的 GUI。除此之外,这将是一个完美的契合。所以,谁能告诉我两件事之一:
是否有命令行 .NET 包,如果有,我在哪里下载?
如果没有,或者这样做不切实际,我需要从 .NET 安装中复制大约哪些目录?
我知道这些文件和目录是系统特定的,我的 .NET 安装可能无法在您的计算机上运行,但如果 C# 类似于 Java,那么这应该是可以实现的。是吗?大小不是限制,应用程序及其所有文件是否为 1GB 或仅为 1MB 对我来说并不重要。
如果没有其他解决方案,我使用Dependency Walker检查程序的所有依赖项。如果我要打包其中的大部分,理论上我的应用程序会起作用吗?