Сборка подключаемых модулей Ocean 2011 с бета-версией Visual Studio 11 - проблема с InventorNet.dll - PullRequest
1 голос
/ 07 марта 2012

Я начал тестировать бета-версию 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 ]

2 голосов
/ 12 марта 2012

Я просто тестирую ваш случай для версии снимка Petre / Ocean 2012 D9 с OIV 9.0.0.0 (для 2011 года - 8.1.2.2), кажется, что он работает нормально (прошел сборку с некоторыми предупреждениями в Visual Studio 2011,и работает нормально в Petrel 2012 D9)。

Дэн Фэн

1 голос
/ 12 марта 2012

Просто о предупреждениях для Ocean 2012 в VS11beta: это может быть предупреждение о «несоответствии ЦП», если ваше решение имеет цель «Любой ЦП» и основано на вершине Petrel 64 (поскольку библиотеки DLL Inventor зависят от ЦП). И не будет никаких предупреждений, если вы выберете 64-битный целевой процессор для своего проекта. Alex

0 голосов
/ 06 июня 2012

Первое предупреждение можно устранить, добавив следующую строку в ваш файл .csproj:

<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">x86</PlatformTarget>

Я добавил его внутри узла, после узла

...