0

パッケージ マネージャー コンソールでカスタム Scaffold コマンドを実行すると、既定のプロジェクトの .csproj ファイルが更新され、ソリューション内の他のすべてのプロジェクトの他のすべてのファイルへの参照が追加されます。

他の誰かがこれを見たことがありますか?

それを回避するための修正はありますか?

実際に何かを行う可能性がある .ps1 ファイル内の唯一の行は次のようになります。

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

編集 PS1 ファイル (メイン プロジェクト内) のスクリプトは、手動で出力ファイルのパスを他のプロジェクト内に指定します。

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

「Invoke-ScaffoldTemplate」コマンドで、これが問題であることを期待して、プロジェクトへの参照を明確に削除しました。

4

1 に答える 1

7

編集:追加した追加情報に基づいて更新されました。明確にしていただきありがとうございます。

「..\OtherProject\Filename」のような上位レベルのパスを使用することは、他のプロジェクトにファイルを追加する方法ではありません。これは、あなたが目撃した奇妙な効果を生み出します。そのようなパスが Invoke-ScaffoldTemplate に指定されている場合は、例外をスローするチェックを追加することを検討します。

ファイルを他のプロジェクトに追加する正しい方法は、適切な -Project パラメーターを Invoke-ScaffoldTemplate に渡すことです。次に、出力がそのプロジェクトに追加され、パスはそのプロジェクトに対する相対パスとして解釈されます。

例えば、

$outputPath = "ExampleOutput"
$wroteFile = Invoke-ScaffoldTemplate -Project "OtherProject" -OutputPath $outputPath -Template $templateFile -Model @{ ... etc ... }
于 2011-02-14T10:07:00.297 に答える