2011-08-04 10 views
0

Prism4 Bootstrapperをソースで参照されたUnityと共に使用しようとすると、エラーが発生し続けます(既存のプロジェクトをソリューションに含める)。また、ソースからUnityを構築する際にエラーが発生し、出力ファイルが含まれています。Prism Modularityを使用し、ソース単位でUnityを含むUnityコンテナエラー

詳細はこちら

私はPrism4を使用したプロジェクトを持っています。 PrismのBootstrapperコンポーネントは、Unity 2.0に依存しています。もっと正確に言えば、彼らはバージョン2.0.414.0の単一性に頼っています。

現在のバージョンまたは新しいバージョンのプリズムを私のプロジェクトにプリズム4として含めると、VSは最新のアセンブリのロードを強制するapp.configコードを生成するメッセージを表示します。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31BF3856AD364E35" culture="neutral"/> 
      <bindingRedirect oldVersion="0.0.0.0-2.1.505.0" newVersion="2.1.505.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

ユニティ2.0とユニティ2.1のためのビルド済みのDLLファイルを使用している場合、これは問題なく動作します...

しかし、私はソースからこれらを構築し、新しいDLLを使用しようとする、または含まれている場合直接私のプロジェクトにプロジェクト私は常にエラーを取得:

 
The type 'Microsoft.Practices.Unity.IUnityContainer' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

マインドあなたはユニティ2.0は、[B] [/ B]バージョン2.0.414.0であること。だから私の最初の試みは、ユニティ2.0ソースベースを使用することでした。私は、新バージョンのプロジェクトから始めて、このバージョンを使って多くのその後の試みを行ってきました。私は、プリムビンファイル、ソース、カスタムビルドされたdllでプリズムを組み込み、同じ結果を得ようとしました。 Unity 2.1を使って同じことを試してみましたが、うまくいくと思っています。

私の環境はMSVC#2010 win7 x64です。私は、x86とすべてのCPU構成だけでなく、デバッグとリリースの両方で構築しました。依存関係はPrismとUnityだけです。

答えて

0

回避方法が見つかりました。

私はPrismソースのソリューションを開き、すべての参照を削除しました。次に、既存のプロジェクトとしてユニティプロジェクトをプリズムソリューションに追加しました。最後に、関連するすべてのプリズムプロジェクトのプロジェクトとして統一を参照しました。だから私のプロジェクトに使用しようとしている統一dllは、プリズムの単一拡張によって出力されています。

後でバッチファイルの更新が行われる可能性があり、回避策があります。

最高の解決策ではありませんが、今すぐ進める準備が整いました。

P.S.件名が正しくありません。これはプリズムのUnityExtensionsの問題であり、モジュール性ではありません。また、私がUnityBootstrapperを呼んだときにはっきりしませんでした。

+0

*修正* ...また、私がUnityBootstrapperを「PrismのBootstrapperコンポーネント」と呼んだとき、私は明確ではありませんでした。 –

関連する問題