Ссылочная сборка не загружается - PullRequest
0 голосов
/ 16 апреля 2010

У меня есть проект visual studio 2010, который публикует сборку под названием myAssembly.ddl. Затем я хочу сослаться на myAssembly.dll из существующего проекта против 2008 года. Если я пытаюсь загрузить ссылку, рядом с ней появляется желтый восклицательный знак, указывающий на то, что сборка не была загружена. Тем не менее, я не получаю никаких сообщений об ошибках во время этого процесса. Очевидно, что если я пытаюсь импортировать пространство имен в моем коде, оно не компилируется.

Преобразование myAssembly.dll в .net версии 3.5 не помогает. Также не происходит копирование сборки в другой каталог и ссылки на нее оттуда.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 17 апреля 2010

Какой .NET Framework вы используете для построения решения в Visual Studio 2008?

Это должна быть версия 3.5, чтобы позволить вам использовать myAssembly.dll, который вы скомпилировали с платформой 3.5 Visual Studio 2008 позволит вам ориентироваться на 2.0 Framework или даже 3.0 Framework.

Visual Studio 2008

Проект> Свойства> Вкладка «Приложение» Ищите Target Framework

2 голосов
/ 17 апреля 2010

Я получаю за это копию.Это видно в Ildasm.exe, компилятор 2010 помечает метаданные как v4.0.30319.Вы также можете увидеть это с Corflags.exe.Система сборки 2008 генерирует предупреждение для этого, вы можете увидеть его в окне «Вывод»:

предупреждение MSB3246: разрешенный файл содержит неверное изображение, метаданные или недоступен по другим причинам

Изменение Target Framework на 3.5 устраняет проблему, теперь сборка будет помечена как v2.0.50727, версия CLR, используемая в 2005 и 2008 годах. Однако IDE недостаточно умна, чтобы обнаружить это изменение.Вам придется удалить ссылку на сборку, а затем вставить ее обратно. И желтый восклицательный знак больше не существует.

...