2

簡単に言うと、CLientdllとContractdllをコンパイルするために、別のWCFVisualStudioプロジェクトがあります。MS-BUILD(コマンドライン)を使用してプロジェクトをビルドすると、ビルド後のnantタスクがあり、クライアントとコントラクトのdllを別の場所にコピーします。

これで、obj / Debugフォルダーからこれらのdllを選択するのが簡単になりました(CLientdllとContractdllのみがあり、依存関係はないため)。

ただし、obj / Debugフォルダーは一時的なものであると聞きました。dllを取得するには、bin/Debugに依存する必要があります。

obj/Debugではなくbin/debugから取得する必要がありますか?その理由は何ですか?

4

2 に答える 2

3

obj \ Debugの役割は、MSBuildの文書化されていない実装の詳細です。これは、MSBuildがプロジェクト設定に基づいてファイルを条件付きでコピーすることを好むために存在します。正確なルールは複雑です。控えめに言って、フレームワークディレクトリ内の.targetsファイルを調べることによってのみ洞察を得ることができます。それ自体は、ターゲットとする.NETバージョンに大きく依存します。

何が原因で問題が発生するのかを本当に知りたい場合は、obj \ Debugからファイルをコピーして、何がファンに影響を与えるかを確認してくださいこれはプロジェクトを作成してからかなり経ってから発生する可能性があるため、ビルドが失敗したり、間違ったファイルが生成されたりすると、FUDのキャストが永久に発生することに注意してください。それがあまり生産的ではないように思われる場合は、そうではありません。保証を破ることを避け、プロジェクトの出力ディレクトリからコピーしてください。デフォルトでは、bin\Debugおよびbin\Releaseです。それで問題が発生した場合は、少なくともSOで質問することができます。

于 2012-10-13T13:15:14.240 に答える
2

はい。からバイナリを取得bin/Debugするか、MSBuildコンテキストの変数OutputPathをより具体的に取得することになっています。

http://msdn.microsoft.com/en-us/library/bb629394.aspx

于 2012-10-13T05:41:05.797 に答える