5

VSIXを使用してTFS2010にインストールするカスタムポリシーを取得しようとすると、非常に時間がかかります。

ポリシーが稼働していて、開発用PCで正常に動作しており、レジストリに値を手動で書き込んで、ポリシーが適用されています。

問題は、VSIXプロジェクトをセットアップし、他の開発マシンに展開することです。

私は次の指示に従いました:

http://blogs.msdn.com/b/jimlamb/archive/2010/03/31/how-to-implement-package-and-deploy-custom-check-in-policy-for-tfs-2010.aspx

推奨される方法は、VS 2010で新しいVSIXプロジェクトタイプを使用することです。ソリューションにVSIXプロジェクトを追加しますが、ブログエントリの手順は、次に何をするかについて非常にあいまいです。私の理解では、PKGDEFファイルは、展開時にレジストリに値を書き込む必要がないことを意味し、Visual Studioを起動すると、PKGDEFファイルの内容が構成にロールインされます。それは問題ありませんが、VSIXパッケージをどのように構築しますか?

カスタムポリシープロジェクトをVSパッケージタイプとしてVSIXプロジェクトに追加しようとしましたが、ビルドすると、次のエラーが発生します。ターゲット「PkgdefProjectOutputGroup」がプロジェクトに存在しません。

dll、カスタムコンテンツタイプとしてのpkgdefファイルなどを追加しようとしましたが、何も機能しません。

ブログのPKGDEFファイルを自分のプロジェクトに合わせて変更しました。

VSIXパッケージを開発マシンにインストールすると、VisualStudioのExtensionsManagerにアドインが表示されますが、TFSでカスタムポリシーを確認すると、「登録されていません」というエラーが表示されます。

カスタムポリシーを展開するためにVSIXプロジェクトを設定するためのステップバイステップが本当に必要ですが、誰か助けてもらえますか?

4

2 に答える 2

6

ブログ投稿には間違いなく欠けているステップがあります。著者が意図したのは、pkgdefファイルをVSパッケージタイプのコンテンツとして(vsixmanifestエディターを介して)VSIXプロジェクトに追加することだったと思います。次に、VSIXプロジェクトからチェックインポリシープロジェクトへのプロジェクト参照を追加します(これにより、チェックインポリシーDLLがVSIXに追加されます)。

補足として....コンテンツタイプとして「VSパッケージ」を選択し、プロジェクトをポイントする場合...それは適切なVSパッケージプロジェクトである必要があります(単なるバニラC#/ VBクラスライブラリではありません)。

于 2010-10-14T20:49:22.210 に答える
1

問題は、アセンブリ名「NArrange.CheckinPolicy.dll」がPolicies.pkgdefの名前と一致しないことです。これを修正するには、Policies.pkgdefが次のようになっていることを確認してください。

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]
"TeamFoundation.Samples.CheckinPolicies"="$PackageFolder$\NArrange.CheckinPolicy.dll"

さらに、source.extension.vsixmanifestの「ProductName」をNArrange.CheckinPolicyに変更することで、さらに混乱を避けることができます。このようにして、アセンブリはVS拡張機能の製品名と一致します。

于 2011-06-02T17:53:03.890 に答える