Строительные леса MVC загрязняют файл .csproj - PullRequest
0 голосов
/ 12 февраля 2011

Когда я запускаю пользовательскую команду Scaffold в консоли диспетчера пакетов, она обновляет файл .csproj проекта по умолчанию и добавляет ссылки на все остальные файлы во всех других проектах решения!

Есть кто-нибудьеще видел это?

Есть ли исправление, чтобы избежать этого?

Единственные строки в файле .ps1, которые на самом деле могут сделать что-то, выглядят так:

Invoke-ScaffoldTemplate -Template $templateFile -Model @{ Name = $MyParam } -OutputPath $outputPath -Force:$Force 

Редактировать Сценарий в файле PS1 (в основном проекте) вручную указывает пути к выходным файлам, которые должны быть в других проектах:

 $outputPath = "..\OtherProject\TargetFolder\" + $EntityName 

В команде "Invoke-ScaffoldTemplate"Я специально удалил ссылку на Проект, надеясь, что это проблема.

1 Ответ

7 голосов
/ 14 февраля 2011

Редактировать: Обновляется на основе добавленной вами дополнительной информации.Спасибо за разъяснения.

Использование путей верхнего уровня, таких как ".. \ OtherProject \ Filename", не является способом добавления файлов в другие проекты - это создает странный эффект, который вы наблюдали.Я рассмотрю возможность добавления проверки для создания исключения, если такие пути указаны для Invoke-ScaffoldTemplate.

Правильный способ добавления файлов в другие проекты - просто передать подходящий параметр -Project в Invoke-ScaffoldTemplate.Затем выходные данные будут добавлены в этот проект, и путь будет интерпретироваться как относящийся к этому проекту.

Например,

$outputPath = "ExampleOutput"
$wroteFile = Invoke-ScaffoldTemplate -Project "OtherProject" -OutputPath $outputPath -Template $templateFile -Model @{ ... etc ... }
...