2011-02-12 60 views
0

當我在軟件包管理器控制檯中運行自定義Scaffold命令時,它會更新默認項目的.csproj文件,並將引用添加到解決方案中所有其他項目中的所有其他文件!MVC腳手架污染.csproj文件

有沒有其他人看到過這個?

是否有修復以避免它?

中的.ps1文件的唯一線路,可能實際上做任何事情是這樣的:

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

編輯 在PS1文件的腳本(主體工程)手動目標的路徑輸出文件是在其他項目:

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

在「援引-ScaffoldTemplate」命令,我特意刪除參照項目,希望這是問題。

+0

達林您好,我很想去,但沒有我的問題有能解決問題的答案! – 2011-02-12 19:24:23

+0

格倫,如果下面的答案解決您的查詢,你能接受這個答案嗎? – 2011-04-01 14:18:10

回答

7

編輯:根據您添加的其他信息進行更新。感謝澄清。

使用像「.. \ OtherProject \ Filename」這樣的高級路徑不是將文件添加到其他項目的方式 - 這會產生您目擊的奇怪效果。我會考慮添加一個檢查來引發異常,如果這些路徑被賦予Invoke-ScaffoldTemplate。

將文件添加到其他項目的正確方法只是將合適的-Project參數傳遞給Invoke-ScaffoldTemplate。然後,輸出將被添加到該項目中,並且該路徑將被解釋爲與該項目相關。

例如,

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