【发布时间】:2012-09-11 00:10:08
【问题描述】:
我问这个问题主要是为了学习。假设我想将一个非常小的控制台应用程序(50 lines of code Also I am using the System.Text.RegularExpresion namespace.) 发送给在 .net framework 4.0 上使用 c# 编写的朋友。我想让应用程序可移植,因此我只需将 bin 目录的输出发送给他。
他为什么要安装.net framework 4.0 客户端,这需要相当长的时间。此外,最好只包含我计划在这种情况下使用的 dll 库 system.dll(该库包含 system.text.regularexpressions 命名空间)。
换句话说,为什么我不能在我的控制台应用程序中包含 system.dll 以使其可移植并使其在未安装 .net 框架的计算机上工作。
.net framework 4.0 的安装为什么这么复杂?如果 windows 将所有 .net 库放在 C:\Program Files\.net framework 4.0\ 上,然后在安装时将密钥写入安装该框架的路径的注册表,以便程序能够找到必要的 dll,会发生什么情况。
为什么一般来说安装如此复杂?
我尝试使用反射器对 system.dll 进行反编译,然后将其包含在我的项目中,但没有成功
编辑
我想我的问题应该是为什么 .net framework 4.0 需要这么长时间才能安装?如果 windows 在哪里将必要的 dll 放在程序文件上,然后将这些 dll 所在的路径写入注册表,为什么不能运行 .net framework 4.0。这个过程会快得多。为什么不这样做呢?
总之
感谢您的帮助,我现在明白了 CLR 的重要性。 我想我唯一想了解的部分是为什么安装需要这么长时间。我知道有成千上万的 dll。将这些 dll 解压缩到程序文件并在注册表上写入 10000 个键应该更快。
【问题讨论】:
-
尝试编写一个可以在 Windows 和 Unix 风格上构建的 C++ 应用程序,看看您是否仍然觉得 .NET 使可移植性变得困难:)
-
Framework 的哪一部分让您感到困惑? .NET 2.0 附带 Windows 7 及更高版本。
-
我不建议这样做,但您可以使用remotesoft.com/linker 来制作原生程序集。
-
可移植性可能最好由具有先决条件检查的安装程序来实现。 WiX 是你的朋友。考虑使用 .net 客户端配置文件,以减少下载要求,但请注意,.net 4.5 中不再提供此功能
-
你怎么能期望在操作系统上预装尚未发布的FrameWork。正则表达式自 1.0 以来一直存在。为什么要定位 4.0?
标签: c# .net installation asp.net-4.0