2009-07-09 90 views
6

我正在使用Microsoft提供的Dll创建c#中的类LLibrary。如何静态链接C#ClassLibrary的库?

现在我想静态添加这些微软提供的库到我的Dll.How我可以做到这一点。 我只是简单地添加了对Microsoft提供的Dll和创建My Dll的引用?这很好吗?

如果微软提供的DLL在其他机器上不可用,那么我的Dll可能会失败,我需要静态添加库?

我该怎么做?

+0

你想用这个完成什么? – 2009-07-09 07:23:52

回答

6

有没有这样的事情静态链接到.NET中的另一个程序集。有一些第三方产品,如.NET linker将程序集合成一个,但它们不受支持。

如果您拥有该库的再发行许可证,则可以随装配一起发运副本。在Visual Studio中,您可以通过在该程序集引用的属性窗口中将“Copy Local”设置为“True”来实现此目的。

3

如果在执行时dll不可用;是的,它会失败。但是:

  • 许多微软的DLL预安装了.NET(警告:“客户端配置文件”)
  • 许多微软的DLL是可再发行组件;因此,可将它们与你的包

没有在核心框架提供的链接,虽然ILMerge可能是有用的。

0

它不是很清楚你想达到什么目的,但你似乎担心你的类库会在其他机器上工作或者没有。问题是.Net框架是一个免费的可再发行组件,如果目标机器上不存在,应该安装它。在机器上已经安装.Net框架的情况下,应该没有问题。

这样的静态链接在.Net中没有任何意义,它为您的项目添加一个程序集引用。希望它有帮助

+0

当你在C++中静态链接一个dll时,它将exe和dll合并为一个文件,这使得它更容易分发并且能够在有限的环境中运行。 – 2016-01-21 17:10:52