0

次の問題: TFS 2012 でゲート ビルドを使用しています。TFS がビルドを開始するとすぐに、すべてが 1 つのフォルダーにコピーされます。

  • 実際のアプリケーションは Silverlight アプリケーションです。
  • ただし、単体テストは.Netプロジェクトに入れられます

私たちのアプリケーションの一部は、サードパーティのコントロールを使用しています。これは、特定の機能を付与する Silverlight アセンブリを使用します。同じ機能が .Net アセンブリで提供されます。これは、サーバー側のものと単体テストのために並列プロジェクトで使用します。実際には同じ機能が付与されます (UI 以外)。これらのアセンブリはどちらも「copy local = true」で参照されます。

ソリューションをローカルでビルドすると (異なるプロジェクトで参照される両方のアセンブリが含まれます)、すべて正常に動作します。しかし、TFS 経由でデプロイしようとするとすぐに、FileIOExceptionか何かが原因でビルドが失敗します。サードパーティのアセンブリが適切なファイルではないことがわかります。

TFS がビルドを開始すると、すべてが 1 つのフォルダーにコピーされるため、それが発生したと思います。両方: .Net アセンブリと Silverlight アセンブリ。どちらも同じファイル名です。それがTFSビルドを台無しにしていると思います。

この問題に対する提案はありますか? すべてのプロジェクトを含む「uber ソリューション」が必要です。したがって、.Net プロジェクトと Silverlight プロジェクトを分割することは解決策ではありません。

4

1 に答える 1

1

おそらく、TFS または非 IDE ビルダーを使用してビルドしているときに、出力ディレクトリが指定されているため、すべてのアセンブリを 1 か所で照合するだけで問題が発生することが原因です。

Silverlight プロジェクト アセンブリにサフィックスを追加することもできます。これにより、アセンブリ出力は "YourAssembly.dll" ではなく "YourAssembly.silverlight.dll" になります。あなたのシステムに不慣れな人は、通常、名前空間を使用してそれらを分割し、Silverlight フレームワークがプロジェクト名とペアになっている *.silverlight 名前空間内にあるようにして、名前空間の違いが問題を解決することを示します。

于 2012-09-17T10:56:23.013 に答える