1

在 C# 中,我有一个程序集 (AssemblyA),其内部对同一解决方案中的另一个程序集 (AssemblyB) 可见,我已经使用

[assembly: InternalsVisibleTo(AssemblyB, PublicKey=1234566.......)]

但是,AssemblyA 被打包到我们的安装程序中,而 AssemblyB 仍然是我们不希望我们的客户访问的内部库。程序集 B 是否需要在场才能正确加载程序集 A?目前我收到一个 FileNotFoundException ,说明没有找到程序集或其依赖项之一,我想知道是否是这种情况。

如果确实如此,有没有办法在没有装配 B 存在的情况下使模块加载?

4

1 回答 1

1

AssemblyA 的事实InternalsVisibleTo(AssemblyB)并不意味着 AssemblyA 依赖于 AssemblyB 或需要它运行时才能加载。

如果您正在FileNotFoundException尝试加载 AssemblyA,那是因为另一个原因。

如果您发布异常的堆栈跟踪,以及更多显示您正在做什么的代码,这可能会帮助这里的人解决异常。

此外,您可以使用诸如fuslgvw.exe.NET 附带的 Fusion Log Viewer ( ) 之类的工具来查看 .NET 程序集绑定失败,并准确找出丢失的 .dll 以及预期存在的位置。

于 2012-11-26T21:17:16.873 回答