Обнаруженные зависимости проекта.Net Deployment волшебным образом исключены
У меня есть решение Visual Studio 2005 .NET, которое содержит более 20 подпроектов, включая проект развертывания. Проект развертывания VS2005 .NET имеет ряд обнаруженных зависимостей, которые были исключены вручную, и в них вручную добавлены исправленные значения.
Однако иногда эти обнаруженные зависимости волшебным образом исключаются, что вызывает предупреждение при сборке: ПРЕДУПРЕЖДЕНИЕ: два или более объекта имеют одинаковое целевое расположение ('[targettdir]\')
Каков триггер, который приводит к тому, что обнаруженная зависимость не исключается? Могут ли решения для развертывания обрабатывать предупреждения как ошибки, чтобы ночная сборка не продолжалась?
4 ответа
Это происходит, когда в зависимом проекте установлен "Копировать локально" в зависимой DLL. В проекте развертывания / настройки в качестве зависимости указан источник и копия библиотеки DLL.
У меня была такая же проблема, и я боролся с ней около года, прежде чем сдаться и перейти к WiX. Также не помогло то, что мне пришлось "собрать две сборки", потому что MSBuild для VS2005 не будет работать с проектами развертывания.
В любом случае, вы можете рассмотреть что-то вроде WiX для ваших установок.
Хорошо, это больше взломать, чем все остальное:)
У вас обычно под visual studio есть 2 варианта:
а) Исключить дублированные библиотеки DLL
или же
b) Установите для свойства Condition ваших дублированных DLL-файлов другое значение.
Проблема в том, что с обоими этими подходами вы все равно будете их магически перезагружать и получать предупреждение, как раньше...
Для нас сработало следующее решение:
а) Зайдите в ваш проект установки и создайте пользовательскую папку
b) Установите для свойства DefaultLocation вашей пользовательской папки то же самое, что и для размещения этих библиотек DLL. то есть для приложений ASP.NET значение [TARGETDIR] \ bin
c) Затем перетащите ВСЕ дублированные библиотеки в эту папку, и вы не должны получать предупреждений.
Вот и все. Вы не должны получать предупреждений для этих библиотек, если у вас есть какие-либо дополнительные, просто перетащите их в эту папку.
Надеюсь это поможет.
-Konstantinos
Обсуждение обнаруженных обновлений зависимостей здесь может объяснить поведение, если вы используете несколько сред разработки с одним и тем же проектом: