Вопрос

У меня есть 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, а затем создание одного решения, содержащего все три проекта, в настоящее время невозможно.У нас есть сторонний плагин VisualStudio, который еще не работает в VS2008.Project2 должен остаться в VS2005.

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top