我正在使用微软提供的Dll在c#中创建一个类LLibrary。
现在我想静态地将那些Microsoft提供的库添加到My Dll。我可以这样做吗? 我只是简单地添加了对Microsoft提供的Dlls和创建My Dll的引用?是不是很好?
如果微软提供的dll在其他机器上不可用,那么我的Dll可能会失败我需要静态添加库吗?
我该怎么做?
答案 0 :(得分:6)
在.NET中没有静态链接到另一个程序集的东西。有些第三方产品(例如.NET linker)将程序集合并为一个,但它们不受支持。
如果您拥有该库的再分发许可证,则可以随程序集一起提供副本。在Visual Studio中,您可以通过在该程序集引用的属性窗口中将“Copy Local”设置为“True”来实现此目的。
答案 1 :(得分:4)
请参阅此处的讨论并阅读评论 - 杰夫确实提供了一种方法。
答案 2 :(得分:3)
如果dll在执行时不可用;是的,它会失败。但是:
虽然ILMerge可能有用,但核心框架中没有提供链接器。
答案 3 :(得分:0)
它不是很清楚你想要实现什么,但似乎你担心你的类lib可以在其他机器上工作。问题是.Net框架是一个免费的可再发行组件,如果目标机器上不存在则应该安装。由于.Net框架已安装在计算机上,因此应该没有问题。
静态链接在.Net中没有意义,除了向项目添加程序集引用之外。希望它有所帮助