- 配置 1:使用面向 .NET 4.5.2 框架的 Visual Studio 2015 为 ArcMap 10.4 构建 ESRI 插件
- 配置 2:使用面向 .NET 3.5 框架的 Visual Studio 2013 为 ArcMap 10.3 构建 ESRI 插件
- 配置 3:使用面向 .NET 4.5.2 框架的 Visual Studio 2013 为 ArcMap 10.4 构建 ESRI 插件
我试图了解为什么 VB.NET 项目中的 Option Strict On 强制执行不会在两个项目中引发错误 BC30512,而在另一个项目中会引发错误。这是一个示例代码行,它使用配置 1 触发错误,但不会触发配置 2 或 3 的错误。
Dim bufferedPolygon As ESRI.ArcGIS.Geometry.IGeometry = New ESRI.ArcGIS.Geometry.Polygon
此外,如果我实例化托管类而不是 coclass,则在任一配置中都不会触发错误(请参见以下行):
Dim bufferedPolygon As ESRI.ArcGIS.Geometry.IGeometry = New ESRI.ArcGIS.Geometry.PolygonClass
ArcMap 的不同版本决定了所针对的框架版本。有关其他背景,ArcObjects 文档的 COM 到 .NET 类型转换是相关的: Using ArcObjects (COM-based) in .NET (ArcObjects .NET 10.4 SDK)
为什么错误是在配置 1 中触发,而不是在配置 2 或 3 中?为什么使用托管类而不是 coclass 实例化配置 1 时不会触发错误?
链接到在 dotnet/roslyn github 存储库中提交的问题。 https://github.com/dotnet/roslyn/issues/13314
谢谢乳木果