Je construis une application MVC4 modulaire, où chaque module (= zone) est une bibliothèque de classe. Les modèles et les contrôleurs compilent dans le fichier .dll, les vues sont copiées dans le dossier approprié. Au moment de l'exécution, tout fonctionne bien. Au moment de la conception, il y a un problème gênant à gauche: lors de la modification d'une vue de rasoir dans une bibliothèque de classe, Visual Studio ne reconnaît pas l'espace de noms System.Web.Optimization. J'ai essayé d'ajouter l'assemblage à la section System.Web / Compilation de la racine et de la web.config: p> Je l'ai essayé sans la version spécifique aussi. Les deux méthodes n'ont pas résolu le problème, mais ont déclenché une erreur d'exécution ASP.NET (visible dans la première ligne de la vue Razor): p> L'ensemble est référencé dans la Le projet et la «copie locale» est défini sur «vrai». Il est également ajouté comme un espace de noms dans la section de configuration de rasoir. P> Je soupçonne que c'est un problème général, je rencontrerai avec d'autres assemblages à l'avenir. P> edit: Strong> J'ai fait la configuration générale pour que Intellisense se passe dans une vue de rasoir dans une bibliothèque de classe. Tout fonctionne jusqu'à présent, sauf que VS2010 ne reconnaisse pas l'espace de nom d'optimisation. P> p>
5 Réponses :
Ajouter un Web.config code> à la racine de votre projet de bibliothèque de classe (celui qui contient les vues de rasoir) avec le contenu suivant (extrait de Ce blog post a >):
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<system.web>
<compilation targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
</system.web>
</configuration>
Je l'ai déjà fait ça. Intellisense fonctionne bien, à l'exception de l'espace de noms System.Web.Optimization.
Avez-vous remarqué
Oui j'ai. J'ai oublié de mentionner que dans la question, désolé!
Ajout
J'ai eu cette erreur dans la vue pré-constructive du projet ASP MVC Pour résoudre, j'ai installé Microsoft.Web.Optimization avec Nuget.
Dans le menu Outils, sélectionnez Gestionnaire de packages de la bibliothèque, puis sur la console de gestionnaire de packages. Entrez la commande suivante pour mettre à jour le support et la minirographie: p> quelques éventuelles ici http://forums.asp.net/1812274.aspx/1 P> p>
Où dois-je entrer dans ce paquet d'installation?
@Vladimir, j'utilise Visual Studio 2013 et devait changer légèrement votre ligne à: p>
Installation-package Microsoft.aspnet.web.Optimization P>
Ceci corrigé pour moi. P>
Les éléments suivants: fonctionne bien pour moi. p> p>
Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0.0 if your project needs specified version, please add -version... for choosing the true version. It will be helpful for you.