2009-08-06 15 views
3

私はMicrosoft.Build.BuildEngineを使用していくつかのプロジェクトを構築しています。 Silverlightを使用しないプロジェクトは構築されていませんが、Silverlightを使用しないプロジェクトは正しく構築されています。Microsoft.Build.BuildEngineを使用してSilverlightプロジェクトをビルドするにはどうすればよいですか?

エラーCS0234:型または名前空間名「SilverlightControlsは」 名前空間 "に存在しません。これらのプロジェクト(Silverlightと非シルバー)のすべてのすべては、私は、エラーメッセージが表示されますのVisual Studioを通じて罰金2008を構築しますSystem.Web.UI '(アセンブリ参照がありません)

Microsoft.Build.BuildEngineを使用してビルドを行っているプロジェクトにSystem.Web.Silverlightを追加しました。私はビルドを行っているプロジェクトの名前空間も見ることができます(ビルドを行っているプロジェクトはSystem.Web.UIにアクセスできるように見えます)。

どのように私はそのエラーを回避することができますか?


VS2008を通じて、ビルドの冗長性を上げとMicrosoft.Build.BuildEngineから作成されたログに比べて。考慮

"C:\プログラムファイル\リファレンスアセンブリ\マイクロソフト\ Frameworkの \ V3.5の\のSystem.Web.Silverlight.dllを"、しかしそれはMicrosoft.Build.BuildEngineは生産ラインが好きであるように見えますそれは存在しなかった。

その場所には存在しませんか?実際には、dllを探して見つからない場所がいくつかあります。私は、右クリックして参照を追加し、.Netを追加して参照を追加しました。私のマシンにはSystem.Web.Silverlight.dllがないようです(プロジェクトがVS2008を使ってコンパイルされているので奇妙です)。 SearchPathのため Microsoft.Build.BuildEngine

"{} GAC":2つのログの可能性の関連するセクションを比較

。 GACの に見つかりませんでした "System.Web.Silverlight、Version = 2.0.5.0、Culture = neutral、 PublicKeyToken = 31bf3856ad364e35、processorArchitecture = MSIL"とみなされます。

のVisual Studio 2008の

System.Web.Silverlight、バージョン= 2.0.5.0、文化=中立、 なPublicKeyToken = 31bf3856ad364e35、processorArchitecture = MSIL

手動で追加

System.Web.Silverlightは、Microsoft.Build.BuildEngineが探していたパス(VS2008経由でプロジェクトをビルドするときに出力ディレクトリからcoppied)に移動します。これは、その問題を解決しますが、私は今、ソリューションのSilverlightのコンポーネントに、次のエラーを取得:

C:\プログラムファイル\ MSBuildのマイクロソフト\のSilverlight \ \ V2.0の\のMicrosoft.Silverlight.Common.targets (95,9):エラー:Silverlight 2 SDKに がインストールされていません。

答えて

3

Microsoft.Build.BuildEngineを実行しているアプリケーションで、ビルドの種類を任意のCPUからx86に変更しました。これにより、アプリケーションは期待どおりにターゲットを構築できるようになりました。

1

したがって、MSBuild APIを使用してプログラムで構築していますか?

engine.LoggersにILogger(例:コンソールに出力するだけのもの)を追加し、VSの出力ウィンドウと出力を比較すると便利です(「tools \ options \ project & solutions \ build & run \ msbuild output verbosity to 'verbose)...何らかの理由で環境がアセンブリの異なる解決を引き起こしているようですか?

関連する問題