2013-04-05 3 views

ответ

0

Visual Studio имеет 2 типа веб-проектов: Веб-приложения и Веб-сайты.

Проекты веб-приложений (WAP) аналогичны любым другим проектам в VS: есть файл .csproj или .vbproj, который содержит настройки сборки, файлы, которые включены в проект, все, что подходит для MSBuild. Если у вас есть группа из них на одном языке (VB/C#), это в основном вопрос добавления всех файлов в один проект. Если у вас есть отдельные языки, нет возможности их комбинировать, и вам придется либо отводить отдельные проекты, либо переносить один язык на другой; MSBuild называет только один компилятор для каждого проекта. (Вы можете позже объединить сборки с ILMerge, но вам все равно придется объединять файлы разметки со всеми проектами самостоятельно.)

Проекты веб-сайтов (WSP) немного отличаются друг от друга. Что касается включения файла в проект, они просто смотрят, что находится в файловой системе (тогда как в проектах на базе MSBuild в основном есть белый список включенных файлов). Кроме того, поскольку WSP не скомпилированы MSBuild, можно смешивать отдельные языки в одном проекте, но вам придется настроить это самостоятельно (см. http://msdn.microsoft.com/en-us/library/ms366714.aspx для прочтения о том, как это работает).

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

  1. Каждый отдельный проект ведет себя как свое приложение IIS. Это важно для всего, что связано с папкой/bin (то есть с любым кодом) или использует URI ~/ для ссылки на контент внутри этого проекта. Это не позволит вам просто создать папку в вашем MasterProject для каждого перемещаемого приложения. В VS действительно нет хорошего дизайна, чтобы обойти это, кроме как иметь отдельные проекты (очевидно, не соответствующие вашим потребностям ...). Таким образом, вам, вероятно, придется добавлять файлы в одну корневую папку.

  2. Любые повторяющиеся имена файлов должны быть отсортированы. Или, с web.config, вам может потребоваться объединить содержимое файла.

  3. Ditto для любых конфликтующих имен классов. Хотя я надеюсь, что, если у вас много совпадений, в большинстве случаев он реорганизуется в отдельную библиотеку.

+0

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

+0

Я не уверен, что это отвечает на вопрос о том, как объединить проекты. –

+0

. Я собираюсь посмотреть, полезен ли этот инструмент: http://www.projectmerge.com/index.php –

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