Обнаруженные зависимости проекта .Net Deployment волшебным образом исключены - PullRequest
5 голосов
/ 17 февраля 2009

У меня есть решение Visual Studio 2005 .NET, которое содержит более 20 подпроектов, включая проект развертывания. Проект развертывания VS2005 .NET имеет ряд обнаруженных зависимостей, которые были исключены вручную, и в них вручную добавлены исправленные значения.

Иногда, однако, эти обнаруженные зависимости магически исключаются, что вызывает предупреждение при сборке: ВНИМАНИЕ: два или более объекта имеют одинаковое целевое местоположение ('[targettdir] \')

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

Ответы [ 4 ]

1 голос
/ 02 апреля 2011

Это происходит, когда в зависимом проекте установлено «Копировать локально» в зависимой DLL В проекте развертывания / настройки в качестве зависимости указан источник и копия библиотеки DLL.

1 голос
/ 06 мая 2009

У меня была та же самая проблема, и я занимался ею около года, прежде чем сдаться и перейти к WiX . Также не помогло то, что мне пришлось «собрать две сборки», потому что MSBuild для VS2005 не будет работать с проектами развертывания.

В любом случае, вы можете рассмотреть что-то вроде WiX для ваших установок.

0 голосов
/ 01 мая 2009

Обсуждение обнаруженных обновлений зависимостей здесь может объяснить поведение, если вы используете несколько сред разработки с одним проектом:

http://www.xmission.com/~legalize/msi/known-bugs-2003.html

0 голосов
/ 13 марта 2009

Хорошо, это больше хак , чем что-либо еще:)

У вас обычно под visual studio есть 2 варианта:

а) Исключить дублированные DLL
или
b) Установите для свойства Condition ваших дублированных библиотек DLL что-то другое.

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

Для нас сработало следующее решение:

a) Перейдите в свой проект установки и создайте Пользовательскую папку

b) Установите для свойства DefaultLocation вашей пользовательской папки то же самое, что и для размещения этих библиотек DLL. то есть для приложений ASP.NET значение [TARGETDIR] \ bin

в) Затем перетащите ВСЕ дублированные библиотеки в эту папку, и вы не должны получать предупреждений.

Вот и все. Вы не должны получать предупреждений для этих библиотек, если у вас есть какие-либо дополнительные, просто перетащите их в эту папку.

Надеюсь, это поможет.

-Konstantinos

...