У меня небольшой проект, и я хочу иметь 2 скомпилированные версии этого проекта:
- тот, который нацелен на .NET 2.0 framework
- тот, который нацелен на .NET 3.5 framework
Все идет хорошо; Я поставил свой проект на непрерывную интеграцию (используя CC.NET) и создал 2 CC.NET «проекта». Один проект для каждой целевой структуры.
Я не буду вдаваться в подробности (не относящиеся к делу), но мое решение настроено на использование платформы .NET 3.5 в VS.NET.
У меня есть 2 задачи msbuild:
- одна задача, которая создает решение для
.NET 3.5 (просто и легко)
одна задача, которая создает решение для
.NET 2.0
В этой задаче я вызываю MSBuild и указываю, что TargetFrameworkVersion должен быть v2.0. Я также определяю некоторые дополнительные условия сборки (чтобы в сборке, предназначенной для .NET2.0, не создавался специфический код .NET3.5).
Пока все хорошо. Все отлично работает
Теперь проблема заключается в следующем:
Мое решение имеет несколько зависимостей (ссылки на сторонние сборки). В VS.NET для этих зависимостей я установил для параметра «копировать локально» значение true.
Когда CC.NET собирает мою версию сборки .NET3.5, сторонние зависимости действительно копируются в мой выходной каталог.
Однако, когда CC.NET строит мою версию сборки .NET2.0, зависимости не копируются в мой выходной каталог. (Затем это приводит к сбою моих юнит-тестов.)
Мой вопрос сейчас:
Как я могу сказать msbuild, что некоторые сторонние ссылки должны копироваться локально при сборке моей версии .NET2.0 моего проекта?
Или, есть ли другой способ добиться этого, так как я не хотел бы указывать каждую зависимость еще раз в моем скрипте сборки. Думаю, это быстро станет кошмаром технического обслуживания.