"Option Strict On запрещает неявные преобразования" непоследовательное применение

  • Конфигурация 1: создание надстроек ESRI для ArcMap 10.4 с использованием Visual Studio 2015 для платформы.NET 4.5.2
  • конфигурация 2: создание надстроек ESRI для ArcMap 10.3 с использованием Visual Studio 2013 для платформы.NET 3.5
  • конфигурация 3: создание надстроек ESRI для ArcMap 10.4 с использованием Visual Studio 2013 для платформы.NET 4.5.2

Я пытаюсь понять, почему принудительное применение Option Strict On в проектах VB.NET не вызывает ошибку 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 определяют, какая версия фреймворка предназначена. Для получения дополнительной информации важно преобразование типа COM в.NET документации ArcObjects: Использование ArcObjects (на основе COM) в.NET (ArcObjects .NET 10.4 SDK)

Почему ошибка возникает в конфигурации 1, а не в конфигурации 2 или 3? И почему ошибка не возникает в конфигурации 1, когда создается экземпляр с управляемым классом вместо кокласса?

Ссылка на проблему, представленную в репозитории dotnet/roslyn github. https://github.com/dotnet/roslyn/issues/13314

Спасибо ши

1 ответ

В настоящее время кажется (как Ханс Пассант предложил в комментарии к исходному сообщению), что это действительно ошибка компилятора Roslyn в Visual Studio 2015. Я открыл проблему в репозитории dotnet / roslyn GitHub, и это было помечен как ошибка и назначен на члена команды. Статус этого может измениться, поскольку проблема исследована.

Ссылка на проблему и дополнительная информация по устранению неполадок: https://github.com/dotnet/roslyn/issues/13314

Другие вопросы по тегам