|
|
1
7
启用非托管调试只能有一个有用的副作用,如果您还具有该组件的PDB和源代码。你不知道,这类组件的供应商不会透露。你能看到任何东西的唯一原因是你让vs生成 互操作程序集 对于COM组件。它将组件的类型库中的声明转换为等效的.NET类型。像IGeometry一样,很可能实际上是引擎盖下的C++类。 这是顶部视图和底部屏幕截图之间的巨大差异。从VS2010和.NET 4.0开始,不再需要此互操作程序集。称为“类型嵌入”,通常是一个非常有用的特性,它避免了为组件部署PIA的需要。尤其是对于Office Interop来说,这是一个非常大的问题。 类型嵌入积极地删除了源代码中未使用的类型和成员。剩下的部分嵌入到最终的程序集中,因此不再需要部署互操作程序集或PIA。或者换句话说,您在调试器中看不到igometry.envelope,因为源代码不使用该属性。它被嵌入管道的类型剥离。 这很容易解决。在项目的引用节点中选择COM引用,并将其“嵌入互操作类型”属性设置为false。您可以在测试后保持这种方式,不要忘记然后还要部署互操作程序集。 |
|
|
2
1
正如我在评论中提到的那样 gis.stackexchange.com 另外,我引用了我们的解决方案:
|