如何静态链接C#ClassLibrary的库?
我正在使用微软提供的Dll在c#中创建一个类LLibrary。
现在我想静态地将那些Microsoft提供的库添加到My Dll。我该怎么做呢。 我简单地添加了对Microsoft提供的Dlls和创建My Dll的引用? 这样好吗?
如果微软提供的DLL在其他机器上不可用,那么我的Dll可能会失败,我需要静态添加库?
我怎样才能做到这一点??
在.NET中没有静态链接到另一个程序集的东西。 有些第三方产品(如.NET链接器)将程序集合并为一个,但它们不受支持。
如果您拥有该库的再分发许可证,则可以随批件一起提供副本。 在Visual Studio中,您可以通过在该程序集引用的属性窗口中将“Copy Local”设置为“True”来实现此目的。
请参阅此处的讨论并阅读评论 – 杰夫确实提供了一种方法。
如果dll在执行时不可用; 是的,它会失败。 然而:
- 许多Microsoft dll都预装了.NET(警告:“客户端配置文件”)
- 许多Microsoft dll都是可再发行的; 所以你可以把它们包在你的包中
虽然ILMerge可能很有用,但核心框架中没有提供链接器。
它不是很清楚你想要实现什么,但似乎你担心你的类lib可以在其他机器上工作。 问题是.Net框架是一个免费的可再发行组件,如果在目标机器上不存在则应该安装。 由于.Net框架已安装在计算机上,因此应该没有问题。
静态链接在.Net中没有意义,除了向项目添加程序集引用之外。 希望能帮助到你
- 来自DLL的app.config的ConnectionString为null
- 变量未声明或从未分配警告
- Inno Setup循环浏览文件并注册每个.NET dll
- 任何开源的即时通讯工具?
- 如何反序列化JSONP响应(最好使用JsonTextReader而不是字符串)?
- 如何将项目模板中的文件夹重命名为项目名称? (视觉工作室模板定制)
- HandleUnauthorizedRequest不会覆盖
- 如何在.NET Core中实现DbContext连接字符串?
- C#中的Google AnalyticsAPI – 请求执行失败:https://www.google.com/analytics/feeds/accounts/default