2016-08-03 4 views
1

Visual Studioを使用している場合は、composite.generated.dllを削除すると新しいファイルを再作成して作成できますが、何らかの理由で本番環境のファイルが削除された場合は再構築できます。私はいくつかのテストを行い、それができないという前提になっていましたが、ちょうどそのチャンスがなかった場合には、bin.genereated.dllを再構築するために何かが行えないことを確認したかっただけです。存在しない。composite.generated.dllが存在しない場合は、それ自身を再構築できますか?

+0

あなたの質問に役立つ場合は、あなたは親切に答えを正しいとマークできますか? –

+0

ありがとうございます。かなり助けました。私たちはいくつかの環境を開発しており、問題を引き起こすことなくサイトを移動できるようにすべてを同じに保っています。主にコンポジットのデータ型が追加され、各環境で変更され、GUIDSが一致しない問題が発生した場合。 – FewestKitten896

答えて

1

TL; DR

は、任意の動的なデータ型を持っていないことを確認し、あなたがしなければ、あなたにApp_Codeにはコードがあなたの動的なタイプを参照していないことを確認してください。

ロングバージョン

Composite.Generated.dllは動的タイプのデータをcontainstデータプロバイダを対象とする実行時にコンパイルされているすべてのデータ型/インタフェースを実装するクラスが含まれています。

静的型を使用すると、ソリューションで作成されたインターフェイスファイルが参照されるため、いつでもComposite.Generated.dllへの参照はなく、Webサイトは無料で起動できますCompositeは、欠落しているか期限切れの場合は、Composite.Generated.dllを先に再コンパイルできます。

ダイナミックタイプを使用する場合は、インターフェイスファイルを作成せずに、CMSエディタを使用してタイプを構築します。その背後では、Compositeがあなたのためのインターフェイスを作成し、それをApp_Code内のコードがこのインターフェイスを見つけて参照することを可能にするComposite.Generated.dllに追加することがあります。問題は、あなたがサイクリック依存関係にあることです。 Composite.Generated.dllを削除した場合、ウェブサイトは最初にApp_Code内のすべてのコードを自動的にコンパイルしようとします。これは、もはや存在しないインタフェースを参照するため失敗します。このため、CompositeはComposite.Generated.dllを開始したり再コンパイルすることはできません。これは古典的な鶏と卵の問題です。

このシナリオのクイックフィックスは、Webサイトの開始を許可するApp_Codeからすべてのファイルを移動し、Composite.Generated.dllファイルを再コンパイルして、ファイルをApp_Codeに戻すことができます。

より堅牢なソリューションは、プロダクションでダイナミックタイプを忘れることです。開発中の迅速なプロトタイプ作成には最適ですが、生産現場では頭痛が激しくなります。

関連する問題