2

ビジネス オブジェクト アセンブリに同じファイル名を使用する Silverlight パターンの CSLA.NET に従っています。例えば:

CSLA.dll               // .NET assembly
MyProject.Entities.dll // .NET assembly
CSLA.dll               // Silverlight assembly
MyProject.Entities.dll // Silverlight assembly

これは、.NET プロジェクトで単一のコード ファイルを使用し、それを Silverlight プロジェクトに "ファイル リンク" して、両方のアセンブリで同じコードを使用できるようにするためです (必要に応じて、.NET と Silverlight を機能的にコンパイルします)。

アセンブリ ファイル名が同じである理由は、WCF シリアル化バインディングが自動的に機能するようにするためです。

私が抱えている問題は、ビルド サーバーが両方のアセンブリを同じ出力ディレクトリ (ビルド サーバーの Binaries フォルダー) に配置し、そのディレクトリを使用してプロジェクト参照を解決しているように見えるが、間違ったファイル (Silverlight のファイル) を取得していることです。 .NET の代わりに)。

この状況に対処する方法を知っている人はいますか?

編集:

TFS 2010 Beta2、VS 2010 RC1、Build Agent 2010 RC1 を実行しています

4

2 に答える 2

0

私が過去に使用した戦略は、両方のプロジェクトに同じソースディレクトリを使用し、プラットフォーム固有のファイルを個別に名前が付けられたサブディレクトリにネストし、出力に同じものをネストすることです(例:bin \ debug\clrおよびbin\debug \ sl)。プロジェクトファイルを手動で少し編集する必要がありますが、うまく機能しているようです。ビルドサーバーに問題があったことを覚えていません。しかし、私は間違っている可能性があります。

于 2010-02-16T22:02:41.313 に答える
0

Aaron Hallberg は、ワークフロー内の MSBuild アクティビティを変更して、OutDir. これは機能しましたが、Binaries フォルダーが出力のコピーを取得できませんでした。

ClrOnly代わりに、ソリューションに、SilverlightOnly、およびの 3 つのビルド構成を作成しましたWebsiteOnly。次に、ビルド定義の [プロセス] タブで、[アイテム] を [ビルド] に設定して " " をビルドし1 project(s) and 3 configuration(s)ます。バイナリの出力は次のようになります。

Nightly_20100217.1\
                  \Multi Platform\
                                 \ClrOnly
                                 \SilverlightOnly
                                 \WebsiteOnly\
                                             \_Published Sites

そして、私の単体テストとすべてがうまく機能しています。

編集:

一方、公開された Web サイトは、ビルドおよび公開時に間違った参照を取得するため、無効です。

于 2010-02-17T20:48:32.977 に答える