Добавление ссылок добавляет неверную версию

При добавлении ссылки на VS 2008 версия указывается как v1.0.0.0, когда она должна быть v1.1.0.0 - насколько я вижу, абсолютно нет причин, по которым она добавляет неправильную версию.

Оба проекта написаны с нуля, никакие другие ссылки не ссылаются на сборку, которую я пытаюсь добавить, и когда я смотрю на файл в Windows, он имеет правильную версию, но каким-то образом VS все равно выбирает неправильную (целевой путь правильный).

Кто-нибудь знает, как заставить VS выбрать версию, на которую я указываю, а не какую-то более старую версию, которую он решает (без всякой причины), является правильной?

Я задавал этот вопрос раньше, но не было ответов, которые решили проблему...

Я определенно выбираю правильный файл.

3 ответа

Решение

Я решил эту проблему, зайдя в проект, на который я пытаюсь ссылаться, УДАЛЯ ВСЕ ссылки (например, system, system.core, system.data и т. Д.) И добавив их все обратно. Это решило проблему.

Я не могу объяснить, почему это решение, тем более что у этого проекта не было никаких других ссылок, кроме тех, которые вы получаете по умолчанию.

У меня возникла та же проблема, и я обнаружил, что у меня задан путь ссылки (из кнопки "Пути ссылки" на вкладке "Ссылки" в свойствах проекта). Это означало, что когда я добавлял сборки, он сначала пытался найти их по ссылочному пути, а не по каталогу, из которого я их выбрал.

Я удалил путь ссылки и смог правильно добавить файлы.

В моем случае проблема была вызвана некоторымиItemGroupтеги в файле проекта, которые я использовал для добавления внешних сборок в проект (чтобы убедиться, что система контроля версий их учитывает). В зависимости от порядка групп элементов правильная версия внешней сборки была добавлена ​​в качестве эталонной или нет.

Например, при попытке сослаться на внешнюю сборку Foo.dll версии 1.1.0.0 VisualStudio ссылается на версию 1.0.0.0, поскольку Foo.dll присутствует в группе элементов.<None Include="External Assemblies\Bar\Foo.dll" />выше в списке групп элементов, чем<None Include="External Assemblies\Foo\Foo.dll" />.

Переупорядочив группы элементов, я смог сослаться на нужную версию.

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