2013-07-25 3 views
4

В настоящее время я пытаюсь преобразовать 3,5 пользовательский проект действия WiX в Visual Studio 2008 для WiX 3.7 и Visual Studio 2012, и я получаю следующее исключение:тип или пространство имен не может быть найден

тип или пространство имен имя «MyNamespace» не может быть найден (вы без вести с помощью директивы или ссылка на сборку?)

длл определенно ссылается и Visual Studio 2012 не имеет никаких проблем с отображением имен. Все под пространством имен даже всплывает в Intellisense, но когда я его создаю, я получаю это исключение.

У кого-нибудь есть идеи, что здесь происходит?

Дополнительная информация:

Пространство имен Я ссылаетесь 2.0 библиотеки .Net и проект пользовательских действий является проект .Net 2.0.

EDIT:

После дальнейших исследований, я получаю это предупреждение, которое я предполагаю, что это корень проблемы:

Основная ссылка «MyNamespace, Version = 8,5 .1.20, Culture = neutral, PublicKeyToken = f593502af6ee46ae, processorArchitecture = MSIL "не удалось быть разрешено, поскольку оно имеет косвенную зависимость от .NET Framework " mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToke n = b77a5c561934e089 ", который имеет более высокую версию« 4.0.0.0 » , чем версия« 2.0.0.0 »в текущей целевой структуре.

Почему он пытается использовать mscorelib 4.0, когда это проект 2.0?

ответ

9

Так получилось, что ссылка dll, скомпилированная для установки рамок .Net 2.0, скомпилировалась с компилятором 4.0. Переключение проекта на компиляцию с помощью компилятора 3.5 решило проблему.

0

Это может быть совершенно не связанным, но вчера у меня была аналогичная проблема. Я случайно скопировал файл класса (.cs) из одного решения в другое решение. Понятно, что я не добавил ссылок на другие решения.

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутации, вы сможете прокомментировать любую запись. » – Ghost

+0

У меня была эта проблема в субботу и при просмотре решения класс был скопирован в неправильный проект, что означало проблему со ссылками. Таким образом, это может не решить эту проблему конкретных лиц, но это действительное решение, и это может помочь некоторым пользователям. –

0

В нашем случае, когда ссылочная dll была нацелена на .Net 4.0, у нее была своя ссылка на dll .Net 4.5.2. Исходная цель 4.0 4.0 привела нас к тому, что 4.5 или 4.5.1 были достаточными для обработки вещей, но они не были - проект ссылки должен был быть 4.5.2 для обработки dll и всех его ссылок.

Это явно ошибка со стороны создателя dll.

Смежные вопросы