2011-08-04 6 views
0

Je continue d'obtenir une erreur lorsque j'essaie d'utiliser Prism4 Bootstrapper avec Unity référencé par source (inclure les projets existants dans la solution). Je reçois aussi une erreur en construisant Unity à partir de la source, puis en incluant les fichiers de sortie.Unity Erreur de conteneur en utilisant Prism Modularité et incluant Unity par source

est ici les détails:

J'ai un projet à l'aide PRISM4. Le composant Bootstrapper pour Prism repose sur Unity 2.0. Pour moi plus précis, ils s'appuient sur la version 2.0.414.0 de l'unité.

Si j'essaie d'inclure la version actuelle ou une version plus récente de Prism dans Mon projet en tant que prisme 4, alors VS me donne un message pour générer du code app.config qui force le chargement du nouvel assemblage.

<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> 

Lorsque vous utilisez les fichiers dll préconstruits pour l'unité 2.0 et Unity 2.1, cela fonctionne sans problème ...

Cependant, si je tente de construire ces de la source et d'utiliser les nouvelles DLL ou Include la projets directement dans mon projet je reçois toujours l'erreur:

 
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'. 

vous que l'esprit Unity 2.0 [b] est [/ b] la version 2.0.414.0. Donc, ma toute première tentative a été d'utiliser la base source de l'unité 2.0. J'ai également fait de nombreuses tentatives avec cette version, y compris à partir d'un nouveau projet. J'ai essayé d'inclure Prism par des fichiers bin préconfigurés, des sources et des dll construits sur mesure avec le même résultat. J'ai également essayé toutes les mêmes choses en utilisant Unity 2.1 dans l'espoir que cela fonctionne.

Mon environnement est MSVC# 2010 win7 x64. J'ai construit sous x86 et toutes configurations de CPU aussi bien que déboguer et libérer. Les seules dépendances sont Prisme et Unité.

Répondre

0

Une solution de contournement a été trouvée.

J'ai ouvert la solution pour la source Prism et supprimé toute référence à l'unité. Puis j'ai ajouté le projet d'unité en tant que projet existant à la solution de prisme. Enfin, j'ai fait référence à l'unité en tant que projet pour tous les projets de prisme concernés. Donc l'unité dll que je vais utiliser pour mon projet est sortie par les extensions de prisme.

Certaines mises à jour de fichiers par lots plus tard et voilà, une solution de contournement.

Pas la meilleure solution mais je suis prêt à passer à autre chose maintenant.

P.S. La ligne d'objet est incorrecte. C'est un problème avec UnityExtensions dans le prisme, pas la modularité. Aussi je n'étais pas clair sur le UnityBootstrapper quand je l'ai appelé "

+0

* Correction * ... Aussi je n'étais pas clair sur le UnityBootstrapper quand je l'ai appelé" Le composant Bootstrapper pour Prism ". –

Questions connexes