2012-01-28 5 views
1

NuGetのPMコンソールはすばらしいですが、あなたはVisual Studioに入っていなければなりません。私は以前にこの質問をしたことがありませんし、トピックに関する文書がないと信じることは難しいと感じています。私はどのようにt4をpowershell.exeから足場にすることができますか?

私は2人のユーザーがいます。ユーザーAはシューズを販売し、ユーザーBは自動車を販売します。それぞれに異なる財産のニーズがあります。 PowerShell.exeを使用して、それぞれのProduct.csエンティティに必要なプロパティ/データ型を書き込めるようにするにはどうすればよいでしょうか。

コントローラ、ビュー、dbcontextおよびリポジトリを足場にしますか?

私は後でMSBuildを行うことができますが、PowerShellを使用してVSTファイルの外からVS 2010外に足を運ぶ方法はないようですか?

洞察力があれば幸いです。

答えて

0

これをpowershellから実行しようとすると、あなたはほとんど領域を踏み外していませんが、それは考えられます。

私はT4テンプレートが外部ツールによってレンダリングされると思います。 PowerShellからEXEを呼び出すことができなかった理由がわかりません。呼び出されるt4テンプレートのコマンドラインでパラメータを渡します。結果のファイル(または複数のファイルの書き込み方法についてはEntity Framework T4の例を参照)は、完了時にt4変換ツールによって出力されます。

さまざまな種類のファイルは、異なるt4テンプレート(Controller.t4、Views.t4、Dbcontext.t4、respositories.t4)によって処理されます。

+0

私は幸運のない日の後にこれを内在的に考え出した。 – aaa

2

を助け

ホープ私は最終的に運の日後にこれを考え出しました。まず、Windows 8 Developer Edition、PowerShell 3.0、VS 2011など、Microsoftのベータ版を使用しないでください。PowerShell 2.0を起動したら:

1. PS/v1.0フォルダにpowershell .exe.configファイル:

スクリプトは、このリンクに従い:http://connect.microsoft.com/PowerShell/feedback/details/525435/net-4-0-assemblies-and-powershell-v2

再起動のPowerShell 2.0を、それが今で4.0フレームワークをサポートします。

コマンドライン:します。Set-ExecutionPolicyは、必要なカスタムT4 scaffolders(あなたが使用することができますインポート

3をRemoteSigned徴候であるためにのみ、リモートスクリプトを必要とする実行ポリシーを設定し

2 T4足場):

コマンドライン:インポートモジュールC: "のVisual Studio 2010の" \プロジェクト\ MvcApplication1 \パッケージ\ T4Scaffolding.1.0.5 \ツール\ \ Users \ユーザー管理\ドキュメント\ T4Scaffolding.NuGetServices.dll

コマンドライン:インポートモジュールC: "のVisual Studio 2010の" \プロジェクト\ MvcApplication1 \パッケージ\ T4Scaffolding.1.0.5 \ツール\ \ Users \ユーザー管理\ドキュメントはT4Scaffolding.dll

4を\します。今すぐあなたのPowerShellのファイルを呼び出す:

コマンドラインを:C: "Visual Studioの2010" \ \ Users \ユーザー管理\ドキュメント\プロジェクト\ MvcApplication1 \ MvcApplication1 \ CodeTemplates \ Scaffolders \ StevceScaffolders.AjaxGrid \ StevceScaffolders.AjaxGrid.ps1

(例えば、スペースを持っている任意のフォルダを引用してください。「のVisual Studio 2010」

私は確かにMSが自分のドキュメントで、この上でいくつかの洞察を提供した場合、それはもっと良かったはずだと思う。

+0

"まず第一に、Microsoftのベータ版は使用しないでください。" - それは健全なアドバイスです。VMのベータ版はアンインストーラがほとんど動作しないため、通常は実際のリリース版へのアップグレードパスはありません。また、あなたのソリューションを投稿するための+1。私はMSが「CodePlex上でプロジェクトを投げるときに、これがうまく文書化されたオープンソースプロジェクトと一緒に投げ捨てられているようなふりをする」と感じている。あなたはNuGetがMSプロジェクトであっても、誰かがそれを一緒に投げ込んだのか、それともコミュニティが動いたのか、それとも何がわかるのかはほとんど分かりません。 – CodingWithSpike

関連する問題