我将第三方图形包 Olectra Chart 包含到 VB.Net 项目中,但受到以下警告的困扰:-
vbc:警告 BC40059:创建了对嵌入式互操作程序集“Interop.OlectraChart2D”的引用,因为从程序集“AxInterop.OlectraChart2D”对该程序集的间接引用。考虑更改任一程序集上的“嵌入互操作类型”属性。
vbc:警告 BC40059:由于从程序集“MyClassLibrary”间接引用了该程序集,因此创建了对嵌入式互操作程序集“Interop.OlectraChart2D”的引用。考虑更改任一程序集上的“嵌入互操作类型”属性。
这些似乎是为了防止必要的 dll 被包含在bin
目录中,从而导致运行时出现异常。
编辑:因此例外:-
System.IO.FileNotFoundException:无法加载文件或程序集“Interop.OlectraChart2D,Version=6.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。文件名:'Interop.OlectraChart2D,版本=6.0.0.0,Culture=neutral,PublicKeyToken=null'
我已经注意到这里和这里给出的答案,并Embed Interop Types
在属性面板中尝试了所有可能的值组合AxInterop.OlectraChart2D
Interop.OlectraChart2D
它们都没有在不产生编译错误的情况下清除警告。
将项目包含在不同的解决方案中会带来不同的警告:-
COM 参考“OlectraChart2D”是 ActiveX 控件“AxOlectraChart2D”的互操作程序集,但被编译器用 /link 标志标记为链接。此 COM 引用将被视为引用,不会被链接。
但输出bin
目录很好。
我可以通过将 dll 从其他解决方案复制到bin
目录中来清除运行时异常,但这对我来说似乎不正确。有谁知道我应该怎么做才能正确解决这个问题?