3

У меня есть 3 проекта .net.Зависимости проектов от нескольких версий Visual Studio

Project1.dll генерируется VS2008 проектом.

Project2.dll Сгенерирована проектом VS2005, который ссылается на Project1.dll.

Проект3.dll создается VS2008 проектом, который ссылается на Project1.dll и Project2.dll.

Прямо сейчас я создаю Project1.dll и вручную копирую его в место, где Project 2 может его поднять.

Затем я создаю Project2.dll и вручную копирую его и файл Project1.dll туда, где Project 3 может их забрать.

Очевидно, что я делаю что-то неправильно (ручное). Каков правильный способ обновления актуальности наших проектов?


Обновление проекта2 до VS2008, а затем создание одного решения, содержащего все 3 проекта, в настоящее время не является вариантом. У нас есть сторонний плагин visualstudio, который пока не работает в VS2008. Project2 должен оставаться в VS2005

Отказ от обновления Project1 и Project3 до VS2005, а затем создание одного решения также не является вариантом. Мы полагаемся на возможности C# 3.0 и .net 3.5 в этих проектах.

ответ

4

David, Вероятно, лучшим вариантом было бы иметь общую папку сборки для всех трех проектов. Это можно сделать в пути Project Properties -> Build -> Output. Затем укажите ссылки на выходную папку. Таким образом, в любое время, когда вы создадите любой из более низких проектов, более высокие проекты будут иметь последние версии. Вы также можете установить путь для каждой конфигурации (Debug, Release), поэтому вам не нужно будет изменять это для каждого типа сборки.

+0

Это то, что работает для моего сценария. – 2008-10-01 19:55:57

0

Мы используем скрипт сборки, который обрабатывает зависимости, создает библиотеки DLL и делает то, что вы делаете вручную.

+0

Конечно, есть, вероятно, более элегантные способы сделать это. Мне интересно слышать о них тоже! – itsmatt 2008-10-01 15:35:46

2

Как о событии предварительной сборки для Project3, которое выходит и использует пакетный файл для сборки Project1, скопируйте его в папку Project2, а затем создайте проект2 и скопируйте его в папку project3.

+0

Я закончил с использованием события post-build, чтобы обработать нюанс в моем случае. Спасибо за совет. – 2008-10-01 19:58:21

0

Трюк, который я использовал в прошлом, - это переместить все в 2008 году. Затем я установил специальное решение в 2005 году для второго проекта и использовал его для работы с добавлением. Как это работает, это зависит от того, насколько плохо работает два проекта в 2008 году.

1

Я бы порекомендовал обмен файлами csproj/vbproj между решениями. Формат файлов проекта совместим между двумя версиями студии (файлы решений, однако, нет), и пока ваши проекты VS2008 ориентированы на среду выполнения 2.0, вам не составит труда скомпилировать их. Это позволит вам ссылаться на проекты, которые будут заботиться о зависимостях.

Единственное место, где это волосатое, это если у вас есть веб-проект, который должен работать между двумя версиями студии. В этом случае есть некоторые изменения в файлах проекта, которые будут указывать на правильные целевые файлы MSBuild.

+0

Это будет работать на вопрос, как написано. Мой сценарий несколько отличается.Существует строгая необходимость сохранить Project2 с 2008 года ... просто моя пожизненная жизнь. – 2008-10-01 19:57:08

Смежные вопросы