Я думаю, что хитрость заключается в том, чтобы создать леса из проекта шаблонов и передать имя проекта, который вы хотите сгенерировать, например, в.
T4Scaffolding.Scaffolder(Description = "Creates a model entity")][CmdletBinding()]
param(
[parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][string]$EntityName,
[string]$ProjectName,
[string]$CodeLanguage,
[string[]]$TemplateFolders,
[switch]$Force = $false
)
# Find the code project, or abort
$project = Get-Project ( $ProjectName) -ErrorAction SilentlyContinue
if (!$project) { throw "Cannot find code project corresponding to solution '$ProjectName'" }
$entityFile = $EntityName
Add-ProjectItemViaTemplate $entityFile -Template EntityTemplate `
-Model @{ Namespace = $namespace; EntityName = $EntityName; MappingName = $MappingName } `
-SuccessMessage "Added Model non-gen output at {0}" `
-TemplateFolders $TemplateFolders -Project $ProjectName -CodeLanguage $CodeLanguage -Force:$false
Вы должны передать строку в аргумент -Project в Add-ProjectItemViaTemplates, а не в объекте проекта
Если вы уже знаете проекты, к которым должны применяться различные скаффолдеры, вы можете установить значение по умолчанию для ProjectName в скаффолдере.
Есть несколько примеров этого в пакете MvcScaffolding.