3

Teamcity で WCF RIA + Silverlight 5 アプリをビルドできません。問題は、ビルド コマンド (csc.exe) にアセンブリが含まれていないことです。csc.exe コマンドのパラメーターに必要なアセンブリが含まれていません:

Microsoft.ServiceModel.DomainServices.Hosting.dll
Microsoft.ServiceModel.DomainServices.Tools.dll
System.ServiceModel.DomainServices.EntityFramework.dll
System.ServiceModel.DomainServices.Hosting.dll
System.ServiceModel.DomainServices.Hosting.OData.dll
System.ServiceModel.DomainServices.Server.dll

他のすべてのアセンブリが適切に含まれています。.csproj ファイルでは、言及されているアセンブリが適切にリストされています。ファイルはシステムの適切なディレクトリに存在します。

TeamCity にこれらのファイルを含める方法を教えてもらえますか?

4

1 に答える 1

0

これはおそらく特定の TeamCity の問題ではなく、CI の問題です。プッシュ/コミット、またはソース管理がサポートするものは何でも、CI サーバーによって変更が取得されます。次に、最新のコードを取得してコンパイルを試みます。ソース管理に適切なアセンブリがすべて含まれておらず、NuGet から取得するか GAC を調べてもそれらのアセンブリが見つからない場合、コードはコンパイルに失敗します。

これを解決するには、次の 3 つの方法のいずれかを実行できます。

  1. 必要なアセンブリを特定し、ローカルの開発マシンで見つけて、ソース管理 lib フォルダーに追加し、そこからアセンブリを参照するようにソリューション プロジェクトを変更します。
  2. NuGet を使用している場合は、必要なアセンブリが Nuget から入手できるかどうかを確認してください (ここで試してみてください: https://www.nuget.org/packages/RIAServices.Server/ )
  3. 不足しているアセンブリを CI サーバー (およびビルド エージェント) の GAC にインストールします。

NuGet を使用しない場合は、1 が最適なオプションです。CI サーバーが汚れているため、3 は最悪のオプションです。CI にインストールすればするほど、CI は汚れていきます。ここでのポイントは、ビルドをコンパイルできるようにするコンポーネントが CI サーバーにある場合、製品をライブ サーバーにリリースしようとしたときに、欠落しているコンポーネントがある可能性があることを認識できないということです。

于 2013-09-06T14:22:40.520 に答える