Зависимости проекта в нескольких версиях Visual Studio

У меня 3 проекта .net.

Project1.dll создается проектом VS2008.

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

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

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

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

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


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

Удаление Project1 и Project3 до VS2005 и последующее создание одного решения тоже не вариант. В этих проектах мы полагаемся на функции C # 3.0 и .net 3.5.


person Amy B    schedule 01.10.2008    source источник


Ответы (5)


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

person Erick    schedule 01.10.2008

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

person Sijin    schedule 01.10.2008
comment
Я использовал событие после сборки, чтобы уладить нюанс в моем случае. Спасибо за совет. - person Amy B; 01.10.2008

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

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

person ckramer    schedule 01.10.2008
comment
Это сработает для вопроса, как написано. Мой сценарий немного другой. Существует строгая необходимость уберечь Project2 от 2008 года ... просто моей странной жизни. - person Amy B; 01.10.2008

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

person itsmatt    schedule 01.10.2008
comment
Конечно, есть, наверное, более элегантные способы сделать это. Мне тоже интересно о них слышать! - person itsmatt; 01.10.2008

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

person Aaron Fischer    schedule 01.10.2008