2011-11-08 8 views
0

ReleaseのTFSビルドを使用して構築されたWCFアプリケーションがあります。このビルドは成功し、_PublishedWebsitesフォルダに正しく出力されます。TFSで構築されたアセンブリは、ローカルアセンブリとは異なる方法で実行されます。

私はこのアプリケーションを展開し、すべてのサービスは1つのサービスの1つのメソッドとは別に動作します。不思議にも、このメソッドは正常に動作する別のサービスに存在します。すべてのエンドポイントとバインディングは、設定で正しいです。

リリースモードのローカルマシンでこのアプリケーションをコンパイルし、TFSビルドを使用して作成したデプロイされたDLLの上に単独のアプリケーションDLLをコピーすると、このメソッドが機能しません。その後、TFSビルドDLLに戻すと、DLLは動作を停止します。

ReleaseモードでTFSビルドDLLとローカルコンパイルDLLが異なる動作をする理由はありますか? TFSを構築し、DLLの開発システムBUIDバージョンの両方逆コンパイルするILSpyを使用し、この差が展開アセンブリのどこかにあるように明らかであるので

はあなた

+0

あなたが受け取ったエラーを貼り付けてください。 – rauts

+0

ねずみ族。私のエラーは - "https://addressHere/service.svc/に対するHTTP応答を受信中にエラーが発生しました。これは、HTTPプロトコルを使用していないサービスエンドポイントのバインディングが原因である可能性があります。 (おそらくサービスのシャットダウンのために)サーバーによって中断されます。 "このサービスで使用されているバインディングはHTTPですが、同じメソッドを実行している別のサービスで使用されているものと同じバインディングです。これは、TFSビルドDLLを使用して発生するエラーです。これをローカルのコンパイル済みDLL(これもリリース時)に置き換えると、これが修正されます。 – w4ymo

答えて

0

ありがとうございます。次に、あなたのために働いていない操作のソースを比較してください。

また、両方のシステムでコンパイル設定に違いがある可能性があります。おそらく1つは64ビット用にコンパイルされ、もう1つは32ビット用です。あるいは、一方はデバッグで、もう一方はリリースです。または、おそらく.NET Frameworkのさまざまなバージョンを対象にしています。

違いが何であるかをご報告ください。私は興味があります:-)

+0

こんにちは。投稿していただきありがとうございます。まず、どちらもリリース用のAnyCPUでコンパイルされ、どちらも.Net 2.0フレームワークをターゲットにしています。 ILSpyを使用する場合、異なるアセンブリ属性はTFS DLLにあり、[assembly:ComVisible(false)]です。これは違いがありますか? – w4ymo

+0

これは、異なるVSプロジェクトや設定を使用してTFSやローカルマシンでコンパイルすることを意味します。あれは正しいですか? – kroonwijk

+0

また、ILSpyのメソッドを比較すると、違いがありました。私の.csファイルにはGuid id = revisionInfo.PrimaryFileIDという行があります。ここで、revisionInfoはmyオブジェクトで、PrimaryFileIDはGUIDプロパティです。ローカルDLLにはGuid id = revisionInfo.get_PrimaryFileID()という行があり、TFS DLLにはGuid id = revisionInfo.PrimaryFileIDという行があり、my .csと一致しています。これはそれかもしれないが、私は違いを理解していない。 – w4ymo

関連する問題