У меня есть 42 различных проекта веб-приложений в моем решении, и я хотел бы объединить их все в одно веб-приложение. Есть ли относительно безболезненный способ сделать это?Слияние проектов веб-приложений в Visual Studio
ответ
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 общего языка, и вы просто пытаетесь сократить количество проектов для поддержки, я не могу придумать гораздо более эффективную стратегию, чем просто начать добавлять существующие файлы в консолидированную проект. Вы можете столкнуться с любым из этих вопросов:
Каждый отдельный проект ведет себя как свое приложение IIS. Это важно для всего, что связано с папкой/bin (то есть с любым кодом) или использует URI
~/
для ссылки на контент внутри этого проекта. Это не позволит вам просто создать папку в вашем MasterProject для каждого перемещаемого приложения. В VS действительно нет хорошего дизайна, чтобы обойти это, кроме как иметь отдельные проекты (очевидно, не соответствующие вашим потребностям ...). Таким образом, вам, вероятно, придется добавлять файлы в одну корневую папку.Любые повторяющиеся имена файлов должны быть отсортированы. Или, с web.config, вам может потребоваться объединить содержимое файла.
Ditto для любых конфликтующих имен классов. Хотя я надеюсь, что, если у вас много совпадений, в большинстве случаев он реорганизуется в отдельную библиотеку.
- 1. Слияние двух проектов VB.Net
- 2. Типы проектов Visual Studio
- 3. Объединение проектов развертывания Visual Studio
- 4. График зависимости проектов Visual Studio
- 5. Организация решений/проектов Visual Studio
- 6. Visual Studio 2010 Сохранение проектов
- 7. Каталог проектов с Visual Studio
- 8. Открытие проектов Visual Studio 2017 в Visual Studio 2015
- 9. Visual Studio Недавний список проектов
- 10. Слияние проектов
- 11. Объекты истории проектов Visual Studio?
- 12. Nuget для проектов PowerShell в Visual Studio
- 13. Запуск двух проектов сразу в Visual Studio
- 14. Выгрузка различных наборов проектов в Visual Studio
- 15. Открытие проектов Visual Studio .dbp в MonoDevelop
- 16. Несколько проектов Visual Studio в Unity
- 17. Ошибка загрузки проектов в Visual Studio 2015
- 18. Загрузка проектов из github в visual studio
- 19. Расположение проектов в Visual Studio 2015
- 20. Несколько языковых проектов в Visual Studio
- 21. Включить C# проектов в Visual Studio 2010
- 22. Рекомендуемое количество проектов в решении Visual Studio
- 23. Невозможно изменить расположение проектов в Visual Studio
- 24. Проблемы с путями проектов в Visual Studio
- 25. Изменить пространство имен проектов в Visual Studio
- 26. Запуск нескольких проектов NUnit в Visual Studio
- 27. Конфигурации внешних проектов в Visual Studio 2012
- 28. Развертывание проектов K2 blackpearl в Visual Studio
- 29. Запуск всех тестовых проектов в Visual Studio
- 30. Автоматическое создание проектов в Visual Studio
Спасибо. Я уточнил свой вопрос, чтобы уточнить. Я понимаю, что я не могу смешивать языки, это хороший момент. –
Я не уверен, что это отвечает на вопрос о том, как объединить проекты. –
. Я собираюсь посмотреть, полезен ли этот инструмент: http://www.projectmerge.com/index.php –