Ответ 1
Это может быть выполнено с помощью powershell и зависимостей пакетов...
У меня есть пакет NuGet, который я создаю для ASP.NET MVC, у него есть все файлы, которые я хочу добавить в стандартный проект Mvc (DisplayTemplates, EditorTemplate, Extensions, BaseController и т.д.). Скажем, его назвали "Company.WebMvc"
Я создал еще один пакет NuGet под названием "Company.WebMvc-Prep". У него есть Install.ps1 script, который удаляет все, что я не хочу, из стандартного проекта Mvc. Вот пример кода удаления файлов Scripts...
param($installPath, $toolsPath, $package, $project)
#Remove Script Files
$scripts = $project.ProjectItems | Where-Object { $_.Name -eq "Scripts" }
if ($scripts) {
$scripts.ProjectItems | ForEach-Object { $_.Delete() }
}
Затем я делаю "Company.WebMvc-Prep" зависимость от "Company.WebMvc". Зачем? потому что Install.ps1 (обычно) запускается после того, как NuGet добавляет файлы из папки содержимого. Мне нужно сначала удалить файлы, а затем добавить новые. Поэтому, когда вы звоните...
Install-Package Company.WebMvc
Компания. WebMvc-Prep устанавливается сначала, потому что это зависимость (выполняется Install.ps1)
Затем устанавливается Company.WebMvc, который добавляет ваш контент.
Длинные и короткие, это... Вы можете перезаписать существующий контент в своем проекте через пакет NuGet.
P.S. Помните, что вы также можете выполнять частичные классы, чтобы изолировать код пакета NuGet от конкретного кода проекта.