Очень странная проблема со сборкой - PullRequest
0 голосов
/ 26 марта 2010

Из-за этого меня больше года ставили в тупик, и он кажется странным и неясным. Когда я строю свое решение, оно жалуется на отсутствующую библиотеку DLL, на которую ссылаются. Когда я восстановлю его, проблема исчезнет. Всякий раз, когда я делаю очистку, это возвращает, то есть мне нужно дважды попытаться собрать, прежде чем это удастся.

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

Кроме того, сборка завершается неудачно, поскольку кажется, что DLL просто отсутствует, поэтому код, который ссылается на нее после сбоя, из-за отсутствия типов в DLL. В следующий раз, когда я начну сборку, она будет работать нормально.

Обновление:

  • Указанная DLL-библиотека является внешней (ValidationFramework from CodePlex), расположенной в дереве исходного кода.
  • Ни один из моих проектов не копирует DLL, только некоторые из них ссылаются на нее.
  • Это происходит как в сборках Debug, так и в Release.

Просто уместно также добавить, что проект A ссылается на ValidationFramework.dll, как и проект B, но проект B ссылается на проект A. Теперь, когда возникает ошибка сборки, всегда, когда компилятор переходит к проекту B, то есть к проекту. A всегда успешно строится как с первой, так и со второй попытки сборки.

Кроме того, когда происходит сбой проекта B, я могу нажимать «Построить» снова и снова безрезультатно, для этого действительно требуется «Перестроить», так что все, что «решает» возникающая проблема, происходит до сборки проекта B (так как Сама проблема может также).

Ответы [ 2 ]

1 голос
/ 26 марта 2010

Является ли отсутствующая DLL одним из проектов, создаваемых в вашей рабочей области? У вас настроены зависимости проекта, так что проект DLL должен быть собран перед сборкой проекта?

0 голосов
/ 26 марта 2010

Это звучит смутно знакомо. Я мог испытать это с vs.net 2003 или 2005, я не помню. Но это проявилось так:

В отладочных сборках C ++ / CLI, на который делается ссылка, будет правильно копироваться в папки-сборщики, но когда я выпускаю сборки, они внезапно ломаются, потому что ссылающиеся проекты не могут их найти. Оказалось, что это ошибка VS.NET, которая, как я думал, была исправлена ​​в сервисе, но тем временем я добавил несколько шагов после сборки, чтобы переместить сборку грубой силой туда, где она должна быть.

Кажется, ваши отладочные сборки работают каждый раз?

...