【发布时间】:2010-11-29 17:14:40
【问题描述】:
我有一个有趣的问题,我想要一个简单的解决方法。我有一个“库”程序集,它在 Visual Studio 的解决方案中的“客户端”项目和“测试”项目中都被引用。问题是测试项目也引用了客户端项目,我们必须使用ILMerge将库程序集与客户端程序集合并进行部署。由于库程序集已与客户端程序集合并,因此当测试项目尝试构建时,我收到关于库程序集中类型的错误,该类型存在于最初引用的库程序集和合并的程序集中。
真正的问题是我们在客户端项目的构建后步骤中运行了 ILMerge;最好的解决方案是将其转移到实际的部署过程中。但是,我们目前的工具会使其难以实施。
有没有办法告诉 .NET 该类型可能存在于多个程序集中并且没关系(考虑到它们实际上是同一个程序集,但在一种情况下只是与另一个程序集合并)?
【问题讨论】:
-
您能描述一下为什么要引用原始库程序集和合并程序集吗?
-
@chibacity 我没有引用合并的程序集。我指的是“客户端”项目和“库”程序集。不幸的是,当构建“客户端”项目时,它使用 ILMerge 合并到“库”程序集中。我将编辑问题以更清楚地反映这一点。
-
是否会在客户端上使用 ILMerge 的“内部”设置(以防止库从客户端程序集中公开可见)解决此问题?
-
感谢您的澄清,我可以看到现在发生了什么。