2013-11-27 2 views
0

Мне нужно найти способ автоматически построить решение, состоящее из 22 проектов на C#. Проблема в том, что мне нужно создать две отдельные сборки, которые предназначены для платформы .NET 2.0, а другая - для платформы .NET 4.0.Ориентация на несколько фреймворков

Я делаю это вручную, изменяя целевую структуру для каждого проекта индивидуально и строя.

Мой вопрос: есть ли способ в визуальной студии, чтобы сделать коммутатор автоматически, что-то в событиях пост-сборки, которые были выполнены после сборки для первой структуры, затем переключите весь проект на новую целевую структуру и запустите другую сборку с помощью новые рамки?

BTW, я использую Visual Studio 2010, если это помогает.

+0

Вы можете выгружать проекты со старыми фреймами, строить, а затем восстанавливать их, снова менять фрейм и выгружать их с помощью нового? – Milen

+1

С точки зрения MSBuild я предполагаю, что вы можете создавать дополнительные конфигурации сборки (например, по умолчанию, * Debug * и * Release *) и устанавливать разные целевые структуры на основе этих конфигураций для каждого проекта. Таким образом, вам нужно будет включить конфигурацию сборки для вашего решения позже, и все проекты должны автоматически адаптироваться. Не уверен, как это сделать в VS. –

+0

Собственно, это частично очерчено [здесь] (http://stackoverflow.com/questions/15321757/how-to-build-same-project-with-multiple-configuration-c-sharp-visualstudio2012). –

ответ

0

У вас может быть 2 отдельных решения, каждый из которых содержит все 22 проекта. Каждое решение будет построено на другую структуру. Вам нужно будет позаботиться о том, чтобы не редактировать какое-либо решение таким образом, чтобы это изменение не поддерживалось в другом.

+0

Я рассматриваю это как вариант на самом деле, но я бы предпочел иметь одно решение для управления, так как вам нужно иметь в виду, что любой новый файл или класс, добавленные в одно решение, должны быть добавлены к другому. И так как это будут разные проекты, я должен постоянно менять их назад и вперед. –

+1

Я не думаю, что VS изначально имеет такую ​​возможность (без стороннего инструмента), но вы можете попробовать создать сценарии MSBuild или даже использовать инструмент автоматической сборки, в котором вы можете настроить фреймворки. – BgRva

+0

Проект содержит файлы и классы, а не решение. Но структура находится на уровне проекта, поэтому не решение ... – Thomas

0

Одна из возможностей, которая была принята для Dapper project является

  • есть проект для каждой целевой платформы.
  • исходные файлы физически хранятся в одном из проектов
  • исходные файлы, связанные с проектами для других целевых платформ (использование «Добавить ссылку» в Visual Studio)

Это может работать достаточно пока проекты стабильны - то есть вы редко добавляете новые исходные файлы.

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

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