【发布时间】:2012-04-06 22:56:59
【问题描述】:
我最近尝试在未安装 .NET 的计算机上部署 C# 应用程序。
我知道 StackOverflow 上有很多个关于同一主题的问题。以下是其中一些,我阅读了所有人的回复:
Packaging up the .net framework with a .net application deployment
Run a .net application without installing .net client profile?
Run C# windows application in windows XP without installing .NET Framework
因此,对上述问题的所有答复都表明,没有特定软件等是不可能的。提到的一个软件是Salamander .NET Linker。唯一的问题是,在 Salamender 处理该应用程序后,我似乎无法运行该应用程序。我知道这本身是不可能的,因为它需要 .NET 虚拟机才能运行。然而,在过去,我制作了 Java 应用程序,并与它们一起发布了整个 JVM。令人惊讶的是,它们仍然有效。所以这不是上述问题的重复的原因是因为我真正的问题是:
我需要打包 .NET 框架的哪些项目?如果我设法全部打包,将它们放在与我正在运行的应用程序相同的目录中是否允许应用程序运行?
我找到了一个解决方案,Microsoft .NET Redist Package。唯一的问题是它有自己的 GUI。除此之外,这将是一个完美的契合。那么,谁能告诉我两件事之一:
是否有命令行 .NET 包,如果有,我在哪里下载?
如果没有,或者这样做不切实际,我需要从 .NET 安装中复制大约哪些目录?
我了解这些文件和目录是系统特定的,我的 .NET 安装可能无法在您的计算机上运行,但如果 C# 类似于 Java,那么这应该是可以实现的。是吗?大小不是限制,应用程序及其所有文件是否为 1GB 或仅为 1MB 对我来说并不重要。
如果没有其他解决方案,我使用Dependency Walker 来检查我程序的所有依赖项。如果我要打包其中的大部分,理论上我的应用程序会工作吗?
【问题讨论】:
-
这些静态链接器是个糟糕的主意。您的应用程序不会受益于安全修复和其他增强功能(ala Windows Update)。
标签: c# .net redistributable