是否可以只包含必需的dll而不是整个.Net框架?

时间:2009-04-28 11:48:27

标签: c# .net visual-studio

我如何只包含我的程序中使用的.Net框架的某些dll以及安装项目而不是安装整个框架?

由于

10 个答案:

答案 0 :(得分:6)

您希望将.NET应用程序部署到服务器,该服务器没有安装.NET,只安装了应用程序所需的特定System。* dll吗?

我很确定你不能这样做。除了GAC中的一堆DLL之外,框架还有更多内容。 (例如CLR,注册表条目等......)。您需要在客户端计算机上安装框架

答案 1 :(得分:4)

我很确定无法做到。 C#是托管代码,因此需要CLR和框架来支持它。

与其他编译为二进制的语言不同,.NET代码被编译为MSIL(Microsoft中间语言),因此无法直接由硬件运行。

答案 2 :(得分:4)

我会推荐.NET客户端配置文件,描述为here。 “.NET Framework Client Profile是针对客户端应用程序的完整.NET Framework 3.5 SP1的一个子集。它提供了简化的子集的Windows Presentation Foundation(WPF),Windows窗体,Windows Communication Foundation( WCF)和ClickOnce功能。这为面向.NET Framework客户端配置文件的WPF,Windows窗体,WCF和控制台应用程序提供了快速部署方案。“

答案 3 :(得分:3)

自.Net 3.5 SP1以来,您可以选择使用.NET Framework Client Profile。这使您可以在某些支持的方案中分发完整.Net包的子集。它仍然需要您使用安装程序 - 您不能只分发单个程序集。这样做的好处是可以显着减少封装尺寸和部署时间。

答案 4 :(得分:2)

没有。为了使您的pogram运行,目标机器必须安装相应版本的.Net框架。您不需要将整个SDK与您的应用程序捆绑在一起,但您需要为您的应用程序包含适当的.Net框架可再发行组件。

答案 5 :(得分:1)

我知道Salamander tools ...但没有使用它们。

从他们的网站:“Salamander .NET链接器,本机编译器和小型部署工具;部署.NET没有框架”

答案 6 :(得分:1)

您可以使用Xenocode之类的工具来链接程序集。

有一个免费的链接器(我认为来自微软),但它的名字让我感到厌烦。

答案 7 :(得分:1)

这是不可能的。您必须在目标计算机上具有适当的.Net框架运行时。您可以使用第三方库/程序集,但不能使用.Net运行时。

答案 8 :(得分:0)

答案 9 :(得分:0)

可以使用反射来标识依赖程序集,并将它们与您的部署“链接”起来。我在Java领域使用了类似的技术。