VS 2010で作成されたC++ DLLプロジェクトがあります。COM(ATL)として公開されています。このDLLを参照として別の.NETプロジェクトに使用しました。次のようにC++プロジェクトのリンカの設定が設定されている:私は2010年にC++プロジェクトがうまく構築さTFSにおけるこれら二つのプロジェクトをビルドするビルド定義を作成しますが、C++プロジェクトの出力DLLが登録されていないため、.NETプロジェクトが失敗した COM DLLの登録がTFS 2010で失敗しました
"Register Output" = Yes "Per-user Redirection = Yes。 "Per-User redirection" = falseに設定すると機能しません。私はまた、WFSアクティビティ 'InvokeProecss'を使用して、Regsrv32 /バッチファイル/自分のexeなどを使用してC++ dllを登録しようとしましたが、終了コードは5になります。TFS 2010はWindows 2008 Server R2にあります。そして、私はそれが管理者としてプロセスを実行していないと思います。
私がtlbimpを使用してinterop dllを生成し、.NETのproejctでそのinteropを参照すると、tfsビルドでうまくいきます(tlbを呼び出すためにInvokeProecssを追加する必要があります)。しかし、私たちの一般的なプラクティスは.NETのproejctから直接COM dllを参照することであるため、これは受け入れられません。
誰でもお手伝いできますか?
ユーザー名とパスワードの入力を求めずにtfs自動ビルドアクティビティ 'InvokeProcess'を管理者として実行する方法はありますか?
COM dllを直接参照することはできません。常にtlbimp.exeが必要です。ビルドサーバーにCOMサーバーを登録することはレジストリの汚染だけを引き起こす恐ろしい習慣です。そして必要ではありません。 tlbimp.exeを実行するだけで、管理者権限は必要ありません。 –