根据编译器开关引用.NET程序集

3

我需要在我的C#项目中根据某些编译器开关(例如#if指令)添加对另一个程序集的引用。例如,我只想在需要时将logger DLL添加到我的项目中。这种操作是否可行?


1
闻起来像是一个XY问题。你能解释一下你真正想要解决的问题吗? - Sriram Sakthivel
1
您可以动态加载日志程序集,但这看起来比它值得的麻烦要多。您确定额外引用的程序集一开始就是一个问题吗? - Frédéric Hamidi
这应该会有所帮助- https://dev59.com/-XRB5IYBdhLWcg3w7reV#465509 - Pranit Kothari
是的,我正在开发一个类库,需要将其提供给客户。它已经包含了许多其他外部库的引用。因此,如果可能的话,我只想避免这种情况。只有当有人遇到任何问题时,我才想通过包含记录器DLL来提供具有日志记录功能的类库。 - Algorist
1个回答

3
据我所知,一个未被使用的引用程序集并不会造成问题。你甚至可以将其保留作为引用。
只要你的代码没有触发该程序集的加载,就不需要拥有该文件。
我建议您检查一下是否真的需要它,并且如果您可以通过创建接口并动态加载程序集(使用 Assembly.LoadFrom)来解决这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接