3

VS2008 から VS2010 と TFS に移行しています。

現在、DLL に組み込まれてから GAC に配置される 12 ほどのプロジェクトと、GAC に配置されるこれらの DLL を使用して構築されるこのソリューションの 3 つの Web サイト プロジェクトを含むソリューションがあります。

VS2008 では、gacutil を使用してそれらを登録するポスト ビルド イベントがあり、これはすべてローカルの開発者マシンではうまく機能しましたが、TFS とビルド エージェントでは機能しません。このビルド後のイベントを削除する必要がありました。

現在の問題は、エージェントがビルドを行っているビルド マシンの GAC に DLL がないため、Web サイトがビルドされないことです。

Web サイトから VS2010 のプロジェクトを参照しようとしましたが、これは単純に web.configs からアセンブリ参照を削除し、ビルド/公開時に dll を bin フォルダーにコピーしますが、これは私たちが望んでいるものではありません。

これらの DLL は本番環境の GAC にあり、3 つの Web サイトはすべてそれらを使用するため、BIN フォルダーには入れたくありません。

サードパーティの DLL もあり、GAC で使用され、3 つの Web サイトすべてで使用されます。

これをVS2010とTFSで動作させる適切な方法は何ですか?

4

2 に答える 2

1

DLL を GAC にインストールすることは、バージョン管理と展開において非常に困難な場合があります。「Lib」フォルダを作成して、すべてのサードパーティ DLL を保持してみてください。私たちは仕事でこれを行い、うまくいきます。これは、XCopy の展開でも問題になりません。詳細については、TFS および参照される DLLのヘルプを参照してください。

于 2012-12-07T18:44:42.130 に答える
0

DLLをGACに登録するには、管理者レベルの権限が必要です。これは、デフォルトではTeamBuildServiceアカウントの場合ではありません。それが失敗する理由です。

次に、2つの選択肢があります。

  1. GACTUtilを成功させるには、ビルドアカウントに管理者権限を設定します。
  2. GACにあるはずのDLLを参照するVisualStudioプロジェクトを、デバッグ/テスト構成で展開する特定の場所(たとえば、サードパーティDLL用のThirdPartiesフォルダーと独自のDLL用の別のフォルダー)に変更します。 GACリファレンスをリリースしたままにします。

アカウントに管理者レベルを与えることになっていないので、1。悪いと言う人もいますが、それは悪いことです。

2.物事が複雑になり、実際に出荷される方法で物事をテストしないので、2。はダメだと言う人もいます。

私のアドバイスは1に行くことです。理由:-簡単に実行できます-現在のアーキテクチャを壊さないでください-サービスの管理者レベルはそれほど悪いリスクではありません、本当に...

于 2012-06-28T15:40:08.843 に答える