1

共通のライブラリとプロジェクトを含むベース アプリケーションをビルドし、すべてをソース管理にチェックインして、ソリューションのベース ビルドをセットアップする自動化プロセスに取り組んでいます。1つを除いて、私が解決した問題のほとんど。ユーザーが指定したソリューションとプロジェクトのパスを傍受し、そのパスを変更することは可能ですか?

言い換えると。

ユーザーは、新規プロジェクトの作成画面で C:/Projects/App1 を指定します。ソリューションとプロジェクトは実際には C:/Projects/App1/trunk/source/App1 に保存されます

パスを変更して、継続的なビルド用に TFS をセットアップする方法を容易にしたいと考えています。これ以外のほとんどの問題は解決しましたが、これが最も簡単なようです。IWizard クラス内で変更できるかどうかを確認しようとしましたが、今のところうまくいきません。どんな提案でも大歓迎です。

このプロセスは、ユーザーがカスタム テンプレートを選択することによってトリガーされていることを付け加えておきます。カスタム テンプレートを使用して回答がない場合は、VS アドインに切り替えます。

-スコット

4

3 に答える 3

1

さらに調べたところ、IWizard インターフェイスは、ソリューション (プロジェクトではない) のフォルダー構造が作成されるまで呼び出されないことがわかりました。先に進む必要があるため、純粋にテンプレート化されたプロセスではなく、Visual Studio へのアドインに切り替えることにしました。

プログラムでソリューションを作成してから、テンプレート化されたプロジェクトを自分のソリューションに追加することは、すでにはるかに幸運でした。問題を回避できました。いくつかのコードを抜粋しましたが、これで基本的な考え方がわかります。

System.Type vsType = System.Type.GetTypeFromProgID("VisualStudio.DTE.9.0"); DTE2 vs = (DTE2)System.Activator.CreateInstance(vsType, true);

soln = (Solution2)vs.Solution;

soln.Create(PathProjectRoot, SolutionName);

soln.SaveAs(ソリューション名);

提案をありがとうございました。

于 2009-04-14T20:15:53.403 に答える
1

Guidance Automation Toolkitを調べる必要があります。とりわけ、言及したすべてのことを実行できるソリューション テンプレートを作成できます。ユーザーにウィザード UI を提示して、どのプロジェクトとファイル参照を含めるかという観点から、ソリューションをカスタマイズできるオプションを要求することもできます。あらゆる種類のプロジェクト設定をセットアップできます。基準などを施行する。

Service Factoryで GAT の洗練された例を見ることができます。http://social.msdn.microsoft.com/forums/en-US/vsgatk/threads/にも GAT フォーラムがあります。

GAT は、Visual Studio Extensibility を使用して実際に作業を行う優れた方法です。

于 2009-04-14T14:22:44.160 に答える
0

あなたが何をしているのかわかりませんが、プロジェクト テンプレートを使えばそのようなことが可能です。ただし、これがあなたのケースに当てはまるかどうかはわかりません。

追加:次のようなもの:

<TemplateContent>
    <Project>
        <Folder>
            <Folder>
                <ProjectItem></ProjectItem
            </Folder>
        </Folder>
    </Project>
</TemplateContent>
于 2009-04-14T14:15:19.980 に答える