2012-03-28 36 views
5

タイトルが同じでも、herehereという質問とは異なります。エラーMSB4018: "CreateRiaClientFilesTask"タスクが予期せず失敗しました - アンロードされたAppDomainにアクセスしようとしました

問題が断続的に発生します。このエラーは、プロジェクトが清掃されたか、新しくチェックアウトされた状態から構築されている場合に常に発生します。直ちにビルドを再度実行すると、ビルドが成功します。私が手にスタックトレースは次のとおりです。

error MSB4018: The "CreateRiaClientFilesTask" task failed unexpectedly. 
System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain. 
    at System.IDisposable.Dispose() 
    at Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.GenerateClientProxies() 
    at Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.ExecuteInternal() 
    at Microsoft.ServiceModel.DomainServices.Tools.RiaClientFilesTask.Execute() 
    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__1c.MoveNext() 

問題は、通常の編集、ビルド実行サイクル中に断続的に発生し、時々のVisual Studioからの再起動は、これらの機会に動作させるために必要とされます。

この問題は、MSBuildとVisual Studio 2010の両方で発生します。すべての最新の更新プログラムがインストールされています(WCF RIA Services SP2)。これはSilverlight 4ツールを使用しているときに発生し、Silverlight 5にアップグレードしても問題は解決していません。 MSBuildのは、循環依存関係を訴えおよびVisual Studioは、私と言うような問題も、まだ(hereから参照)hereを説明するように、私は、ビルドの順序を変更することができていませんしました

VS 11のベータ版で発生しますSilverlight以外のプロジェクトをSilverlightプロジェクトから参照することはできません。そのページから、私はthis linkに従ってみて、レジストリでデフォルトのToolsVersionを2.0から4.0に変更しました。

MSBuildの32ビット版を使用しています.64ビット版を使用しようとすると失敗し、エンティティフレームワークモデルをハッシュしません。私は/ mスイッチを使ってパラレルに構築していません。

プロジェクトは当初、Webプロジェクト(Silverlightコントロールが存在するサイトをホストし、RIAサービス、ビジネスロジックを含む)とSilverlightプロジェクトでした。これを3つのプロジェクト(ロジックを含むクラスライブラリで)に変更しても違いはありません。

私が試みている次のことは、Silverlightアプリケーションをホストしているプロジェクトとは別のRIAサービスをホストしているプロジェクトですが、それは私にとっては理想的ではありません。

+0

レコードについて:密接に関連する質問はhttp://stackoverflow.com/q/4450340/223837です。 –

答えて

0

これまで私が実行したすべてのサーバーとクライアントでこの問題を解決したこの問題の解決策が見つかりました。

私の最初のプロジェクトレイアウトには、RIAコンポーネントとSilverlightアプリケーションの両方のホストとして機能するWebプロジェクトがありました。 RIAサービス用のクラスライブラリを作成し、RIAロジックをすべてそこに移動し、Webプロジェクトからの参照を追加しました。次に、この新しいプロジェクトを指すようにSilverlightのRIAリンクを更新しました。

認証が機能するように、次の行をSilverlight app.xaml.csファイルに追加する必要がありました。

((WebAuthenticationService)WebContext.Current.Authentication).DomainContext 
    = new RiaNamespace.AuthenticationDomainContext(); 
0

私は、私のプロジェクトのいくつかにまったく同じことが起こっていました。私はRIAとSilverlightのアップグレードパスに関連していることを(実際に推測して)見つけました。私は新しいマシンを手に入れました。すべてのアップデートがオンになっていて、それはまだ起こりました。しかし、私が最初からプロジェクトを再作成したとき(「生成された」アセンブリ情報ではなく、ファイルをコピーして設定する)、問題は解決しませんでした。

私が想定していたはずの決定的な答えではなく、正直言って最初から解決策を作り直すのは苦痛でした。私は、それがRACフレームワークの以前のバージョンを求めていたGACの宣言その他に関連していると思われます(唯一の結論が出ています)。

私はRIAのバージョンをインストールし、それを使ってコード化していましたが、この間に素早く連続していくつかのSilverlightアップデートがありました。私はそれ以来何の問題もありませんでした。

+0

ここでの経験は同じです:ビルドサーバでこれを実行しましたが、新しいサーバに移動したときにだけ終了しました。私は自分の開発システム上にそれを持っていますが(まれですが)、私が新しいものに移行すると、それは消え去るでしょう。それでも、迷惑な。 –

1

この例外は私を夢中にしています!私はまた、ASP.Net一時的なフォルダをきれいにして、ソリューション内のすべてのプロジェクトをクリーンアップし、管理者としてVSを実行しました。しかし、まだ私はこの問題があります。私の解決策は、Webプロジェクトを2回再構築することです。

3

私の場合、この例外はMcAffeeのウイルス対策アプリケーションによって発生しています。オンアクセス(またはオンデマンド)機能を無効にすると、問題が解決されました。

MicrosoftのSecurity Essentialsで過去に同様の問題が発生しましたが、以下の例外を追加して解決しました。私は、ここで問題を解決するために必要となるのは、「Temporary ASP.Net Files」フォルダの除外であると思われます。

除外されるファイルとその格納場所

  • C:\ Tempに\デフォルトNuGet.exe \
  • C:\ Tempに\ NativeImage \ NuGet.exe
  • C:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v4.0.30319 \ ASP.NETの一時ファイル
  • NuGet.exe

を除外dがプロセス

  • C:\プログラムファイル(x86の)\ CommonのFiles \ Microsoftが共有\ DevServerは11.0 \ WebDev.WebServer40.EXE
  • C \:\プログラムファイル(x86の)\のMicrosoft Visual Studioの11.0 \ Common7 \ IDE \ devenv.exe
  • C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Microsoft.VisualStudio.Web.Host.exe
  • C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe
+0

これは私のためにも修正されましたが、McAfeeを削除して別のものをインストールしたものを除外するのではなく、 – BenCr

+0

これも私たちのために修正されました。しかし、企業ポリシーのためMcAfeeを完全に無効にしたり、除外を変更することはできませんでした。一時的なASP.Netファイルを別の場所に移動する方法を発見しました。私はそのために別の答えを加えています。 –

0

ウイルススキャナをビルド中に実行します。私のために働いた!

1

このケースでは、この同じ質問(https://stackoverflow.com/a/14125687/223837)の別の回答で報告されている問題と同じ問題が発生しました。McAfeeが「Temporary ASP.NET Files」のファイルを不思議に干渉しました。しかし、私たちのケースでは、会社の方針のためMcAfeeを無効にしたり除外されたフォルダを変更することはできませんでした。

しかし、我々は別の解決策を見つけた:次のように我々は、(我々の場合C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.configに)machine.configファイルを更新し、<compilation tempDirectory="..."/>要素を追加したものを:このソリューションの方向について

<configuration> 
    <!-- snip --> 
    <system.web> 
     <!-- snip --> 
     <compilation tempDirectory="c:\A_FOLDER_THAT_IS_SKIPPED_BY_MCAFEE\TempASP.NETFiles\"/> 
    </system.web> 
    <!-- snip --> 
</configuration> 

(インスピレーションから来ました関連する質問への回答:https://stackoverflow.com/a/1255303/223837

+0

Grmph。このソリューションはかなりのビルドに役立っていたようですが、今度は2つのビルドが連続しています。だから問題は戻っている... –

0

私は同じ問題がありました。

"アセンブリバージョン"番号を変更したところ、プロジェクトはOKでした。