Как я могу клонировать решение .NET?

Запуск новых проектов .NET всегда требует немного работы. Вы должны создать решение, добавить проекты для разных уровней (Domain, DAL, Web, Test), настроить ссылки, структуру решения, скопировать файлы javascript, шаблоны css и мастер-страницы и т.д. И т.д.

Я бы хотел, чтобы был простым способом клонирования любого заданного решения.

Если вы используете copy/paste, проблема в том, что вам нужно переименовать пространства имен, имена сборок, имена решений, GUID и т.д.

Есть ли способ автоматизации этого?

Что-то вроде этого было бы здорово:

solutionclone.exe --solution=c:\code\abc\template.sln --to=c:\code\xyz --newname=MySolution 

Я знаю, что Visual Studio имеет шаблоны проектов, но я не видел шаблонов решений.

Ответ 1

Я создал небольшое приложение для этого. Он работает так же, как и ранее упомянутое приложение Solutionclone, за исключением того, что это приложение как командной строки, так и приложение WPF.

Cloney копирует исходную папку на целевую, без интеграции Git или Svn. Он также заменит старое пространство имен везде (как в именах файлов, так и внутри файлов) с новым пространством имен (имя целевой папки) и исключит определенные файлы (например, *.suo, *.user, *.vssscc) и папки (например .git,.svn).

Вы можете захватить исходный код или загрузить исполняемый файл в https://github.com/danielsaidi/cloney.

Клони также можно добавить в контекстное меню проводника Windows, что позволяет клонировать .NET-решения, просто щелкнув правой кнопкой мыши файл .sln.

Ответ 2

Как вы уже выяснили: скопируйте файл .sln и убедитесь, что пути/указатели совпадают.

Потому что .sln text/plain просто используйте ваш любимый язык сценариев для script клонирования.

Возможно, это подходящее время для изучения Python/Ruby/Perl/Windows script Host

Определение MSDN-решения (.sln)

Ответ 3

Посмотрите Tree Surgeon на CodePlex, он создает для вас дерево разработки.

Ответ 4

Я считаю, что Инструментарий Automation Automation Toolkit позволяет вам сделать это, но не может быть "простым" способом.

У меня та же проблема, что и вы, и намеревайтесь подробно рассмотреть ее "сейчас".

Ответ 5

Может быть, вы должны проверить проект Warmup с открытым исходным кодом. Найдите краткое описание http://devlicious.com/blogs/rob_reynolds/archive/2010/02/01/warmup-getting-started.aspx.

IMHO, преимущество подхода Warmup заключается в том, что он может клонировать все дерево с помощью решения непосредственно из SVN или GIT.

Внимание! Я не использовал его лично, но планирую попробовать его в следующем проекте. Пожалуйста, оставьте комментарий, если вы его используете.

Ответ 6

Старый пост, я знаю, но мне недавно нужно было это сделать, и хотя есть несколько домашних инструментов, чтобы сделать это, я хотел что-то более легкое, чтобы я мог бродить вокруг, где бы я ни находился. Поскольку мне нравится python для интерпретируемых языковых скриптов, я написал один файл-инструмент в python для выполнения задания. Это только зависимость python3 и chardet2.

https://gist.github.com/4159114

Ответ 7

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

Вы также можете реализовать пользовательский IWizard для полного контроля.