2013-08-28 1 views
1

J'ai une application MVC Portal-Plugin modulaire. Lorsque j'ai modifié le chemin de sortie de l'application mvc Razor highlight et intellisense stop pour travailler dans les fichiers cshtml. Quelqu'un peut-il faire face à ce problème avant? J'ai aussi ajouté événement post construction copier Vues dans le répertoire personnaliséLa surbrillance du rasoir a cessé de fonctionner

J'ai principale application MVC "Container" et des modules (projets mvc)

Application principale mvc et modules résident dans une solution

Il est des options suivantes sur chaque module application MVC:

Output Path : ..\Container\bin\ 

Post build Event: xcopy "$(ProjectDir)\Views" "..\Modules\$(ProjectName)\Views" /s /i /y 

Après cette manipulation mon rasoir et intelisense arrêt de surbrillance pour travailler dans l'application du module.

Répondre

4

Je résous mon problème. C'était un problème avec le chemin de sortie.

Je viens de mettre le chemin de sortie par défaut "bin \" et d'ajouter un événement de post-construction pour copier ma DLL de ce dossier dans un autre.

+0

Beau travail! et merci d'ajouter le répondez à votre question, donc les programmeurs avec le même problème peuvent obtenir de l'aide ici :) – Max

1

Créer un fichier que votre web.config dans votre Visual studio project contiennent les lignes suivantes:

<configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
</configSections> 

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     <add namespace="MyCustomHelpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor>\ 

Ces lignes vous donnent le sens Intelli.

+0

S'il vous plaît, regardez sur ma question a changé. Vous approchez ne fonctionne pas, je viens de le tester. :( – Polaris

+0

Donc, vous dites que le sens intelli ne disparaît que lorsque vous passez à un autre chemin de sortie? – Max

+0

Oui, je viens de le tester Il ne disparaît que lorsque je change le chemin de sortie – Polaris

3

Résolu et blogué à ce sujet ici ...

http://mhammadchehab.com/wordpress/2013/12/enabling-intellisense-for-razor-in-class-library-mvc-5-razor-3-0/

* Clic droit -> Gérer NuGet paquets

* Cliquez sur les paquets installés.

* Cliquez sur Désinstaller.

* Lorsque vous avez terminé la recherche de MVC 5 en ligne et installez la bibliothèque.

* Faites un clic droit sur votre projet et accédez aux propriétés

* Sélectionnez Construire

* Sur configuration, sélectionnez toutes les configurations.

* Accédez au chemin de sortie et tapez « bin \ »

* Nettoyez votre projet et la reconstruction.

* Assurez-vous que votre fichier cshtml est fermé. * Rouvrez le fichier d'affichage et BOOOOOOM cela fonctionne.

+0

Alors que ce lien peut répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. En outre, l'auto-promotion est mal vue ici; visitez le centre d'aide pour savoir dans quelles conditions cela est autorisé. –

+1

D'accord J'ai mis à jour ma réponse –

+0

Le domaine lié a expiré. Et la réponse est si parcimonieuse pour ne pas mentionner quel paquet NuGet à désinstaller ... – freefall

0

Changer le chemin de sortie à bin/est la réponse correcte, mais je l'ai un peu allongé. les étapes nécessaires à toute la création d'une bibliothèque de classes « vanille » avec le soutien IntelliSense sont les suivantes

Créer ou ouvrir un projet de bibliothèque de classe existante (si vous ouvrez un existant assurez-vous de supprimer le paquet NuGet de MVC5)

Ajoutez le MVC (5.0) Forfait NuGet (à droite projet, cliquez dans l'explorateur de solution -> Gérer NuGet paquets -> Recherche pour MVC et installer « Microsoft ASP.NET MVC »)

Fermez toute ouvrir .cshtml fichiers

projet Clic droit -> Propriétés -> Build -> change le chemin de sortie vers "bin /"

Ajoutez le fichier Web.config minimal à la racine de votre projet de bibliothèque de classes (le fichier de configuration web est uniquement requis pour intellisense. Web.config) doit être effectué dans WebApplication hébergeant votre assembly ClassLibrary)

Nettoyez et construisez la solution.

fichier cshtml Ouvrir

web.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    </appSettings> 

    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    </system.web> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.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" /> 
     <!-- add other namespaces for views here --> 
     <!-- e.g. your own project's, Lib.Views.Etc --> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 
</configuration> 

Je viens aussi blogué sur ce http://thetoeb.wordpress.com/2014/01/05/enabling-mvc5-intellisense-in-a-classlibrary-project/

0

Je résolus comme suit. Dans web.config, ajoutez ceci:

<appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    </appSettings> 

Pour référence, webpages:Version Est-ce:

Si la clé est manquante dans le fichier web.config, comme par défaut Razor V2/V3 site, VS utilisez la version rasoir dll du répertoire bin pour déterminer le moteur de rasoir design dll à charger.

https://stackoverflow.com/a/27918972/3146