Проблема синхронизации ссылки на проект Visual Studio

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

Проблема, которую я вижу, связана с Visual Studio 2008. Когда я напрямую ссылаюсь на проект в своем решении, я замечаю, что зависимая ссылка иногда выходит из синхронизации, и мой проект верхнего уровня в конечном итоге удерживает старую сборку DLL (наиболее очевидным является тот факт, что мои точки останова больше не срабатывают). Я бы ожидал такого поведения, если бы моя ссылка была основана на DLL, но я думал, что ссылка на проект напрямую должна была избежать этих проблем с синхронизацией, поскольку проекты построены в тандеме как часть решения.

Если я вручную изменю номер версии зависимого проекта, что, по-видимому, приведет к обновлению ссылки и исправлению, или если я перестрою зависимый проект, затем "очищу" и перестрою проект точки входа, ссылки, кажется, синхронизируются, так что у меня есть обходной путь. Однако в прошлом я никогда не замечал этой проблемы; при полной перестройке решения все синхронизировалось за один простой шаг.

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

Я сделал следующее довольно недавно, поэтому я надеялся покопаться в ваших мозгах, чтобы узнать, есть ли какие-либо известные проблемы (и / или простое исправление), связанные с любой из этих вещей.

  • Модернизировал (спорное прилагательное? :) ) мою ОС с XP на Windows 7
  • Обновлен с 32-битного до 64-битного процессора (изменение моей ОС также отразилось на этом... 32-битная XP -> 64-битная Win7)
  • Установил Visial Studio 2010 Express вместе с моей версией 2008 года.

Я использую Visual Studio 2008 с пакетом обновления 1 (версия 9.0.30729.1)


person Steven    schedule 22.09.2010    source источник
comment
извините, а что именно сейчас не так? ссылка на проект вместо dll - правильное решение. Я надеюсь, после того, как ты это сделал, все должно быть в порядке, нет?   -  person Alexander Beletsky    schedule 22.09.2010
comment
В прошлом ссылки на основе проекта всегда оставались синхронизированными при построении решения. Теперь я замечаю, что это не всегда так. (Кроме того, похоже, что это не всегда НЕ так, что является одной из причин, по которой я не могу точно определить, что изменилось... Я должен был быть более усердным, но я списывал некоторые случаи на странное поведение). Теперь, даже с ассоциациями на основе проектов, будут случаи, когда один из моих проектов будет удерживать старую ссылку на другую DLL проекта даже после полной перестройки решения.   -  person Steven    schedule 22.09.2010


Ответы (1)


Добавляете ли вы ссылки на проект или просматриваете dll в каталоге /bin, чтобы сослаться на него? Если вы просматриваете, у вас будут эти проблемы; поэтому вы добавляете ссылки на проект (вкладка «Проект» диалогового окна «Добавить ссылку»).

Вторая возможность заключается в том, что ваша сборка настроена так, что указанный проект не создается.

Откройте диалоговое окно Configuration Manager (щелкните правой кнопкой мыши решение, выберите Configuration Manager...) и убедитесь, что для текущей выбранной платформы выполняется сборка всего, что вам нужно (флажок в столбце Build установлен).

person Community    schedule 22.09.2010
comment
Я выбираю зависимость как проект, а не просматриваю DLL. Раньше у меня никогда не было с этим проблем, но в последнее время (эпизодически в течение последних 3-4 месяцев?) я заметил некоторые странные проблемы с синхронизацией. Я не знаю, что изменилось, но вы подняли хороший вопрос о деталях платформы. - person Steven; 22.09.2010
comment
упс... Я пытался добавить жесткий разрыв строки с помощью Enter, но вместо этого был отправлен мой неполный комментарий. Что касается параметров платформы, то при переходе на 64-разрядную версию я заметил, что Visual Studio, похоже, не поддерживает редактирование кода во время обработки в 64-разрядной среде (32-разрядная версия позволяет это делать). Кроме того, я заметил некоторые странности при упоминании 64-разрядных сборок (в моем случае это результат настройки любого процессора, а не преднамеренного выбора использования x64), поэтому я привык заставлять каждый проект 32-битная платформа... может ли это вызывать проблемы? - person Steven; 22.09.2010
comment
Я должен был прочитать ваш пост внимательнее. Вы ответили на мой вопрос. В Configuration Manager два моих зависимых проекта не были проверены на сборку. Я дважды проверил элементы Project Dependencies и Build Order, но пропустил этот... Думаю, мне нужно кое-что прочитать, потому что кажется, что Configuration Management и Build Order покажут, по сути, одно и то же. , но в моем случае они кажутся противоречивыми... хм... В любом случае, спасибо за быстрый и исчерпывающий ответ! - person Steven; 22.09.2010