Сборка подключаемых модулей Ocean 2011 с помощью Visual Studio 11 Beta - проблема с InventorNet.dll
Я начал тестировать бета-версию VS11 для создания плагинов Ocean 2011. Кажется, он работает очень хорошо и имеет достаточно преимуществ, которые я рассматриваю, чтобы использовать его для повседневной работы. (Разумеется, мы не будем делать производственные сборки с VS11 до того, как Schlumberger рекомендует).
Однако есть одна проблема блокировки:
Не удается собрать проекты, зависящие от InventorNet.dll, со следующими сообщениями:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1546,5): предупреждение MSB3270: произошло несоответствие между процессорной архитектурой строящегося проекта "MSIL" и процессорной архитектурой ссылка "InventorNet", "AMD64". Это несоответствие может привести к сбоям во время выполнения. Рекомендуется изменить архитектуру целевого процессора вашего проекта с помощью Configuration Manager, чтобы согласовать архитектуры процессора между вашим проектом и ссылками, или взять зависимость от ссылок с архитектурой процессора, которая соответствует целевой архитектуре процессора вашего проекта.
CSC: фатальная ошибка CS0008: непредвиденная ошибка чтения метаданных из файла 'c:\Program Files\Schlumberger\Petrel 2011\InventorNet.dll' - 'Индекс не найден.'*
Я думаю, что первое предупреждение безвредно, так как аналогичные предупреждения генерируются другими зависимостями, но я не могу обойти сообщение об ошибке (выделено жирным шрифтом). Оба, вероятно, происходят от более строгой проверки сборки в.NET 4.5 (также в бета-версии), используемой MSBuild. Наши проекты нацелены на.NET 3.5.
Кто-нибудь знает, можно ли исправить ошибку с помощью какого-либо параметра или другого трюка, или нам нужны обновленные сборки от Schlumberger? (Поиск в Google приводит к нескольким подобным случаям, связанным с VS2010, и указывает, что поставщику сборок действительно необходимо перестроить сборку, чтобы исправить проблему.)
В качестве альтернативы, кто-то может указать, будет ли проблема исправлена в Ocean 2012?
3 ответа
Я просто проверяю ваш случай для версии снимка Petre/ Ocean 2012 D9 с OIV 9.0.0.0(для 2011 года это 8.1.2.2), кажется, что он работает нормально (прошел сборку с некоторыми предупреждениями в Visual Studio 2011 и работает OK в буревестнике 2012 D9)。
Дэн Фэн
Просто о предупреждениях для Ocean 2012 в VS11beta: это может быть предупреждение "Несоответствие ЦП", если ваше решение имеет цель "Любой ЦП" и основано на вершине Petrel 64 (потому что библиотеки DLL Inventor зависят от ЦП). И не будет никаких предупреждений, если вы выберете 64-битный целевой процессор для своего проекта. Alex
Первое предупреждение можно устранить, добавив следующую строку в ваш файл.csproj:
<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">x86</PlatformTarget>
Я добавил его внутри узла, после узла