我有模块化的MVC Portal-Plugin应用程序。当我改变了mvc应用程序的输出路径Razor高亮和智能感知停止在cshtml文件中工作。以前有人可以面对这个问题吗?我还添加了post build事件来将Views复制到自定义目录
我有主要的“容器”MVC应用程序和模块(mvc项目)
主要的mvc应用程序和模块位于一个解决方案中
每个模块MVC应用程序都有下一个选项:
Output Path : ..\Container\bin\
Post build Event: xcopy "$(ProjectDir)\Views" "..\Modules\$(ProjectName)\Views" /s /i /y
经过这次操作后,我的Razor智能感知和突出显示停止在模块应用程序中工作。
答案 0 :(得分:4)
我解决了我的问题。这是输出路径的问题。
我只是将默认输出路径“bin”添加并添加post build事件以将我的dll从此文件夹复制到另一个文件夹中。
答案 1 :(得分:3)
解决了它并在这里写了博客......
*右键单击 - >管理Nuget包
*单击已安装的包。
*点击卸载。
*完成在线搜索MVC 5并安装库。
*右键单击您的项目并转到属性
*选择Build
*在配置上选择所有配置。
*转到输出路径并输入“bin \”
*清理项目并重建。
*确保您的cshtml文件已关闭。
*重新打开您的视图文件,它可以使用BOOOOOOM。
答案 2 :(得分:1)
确保Visual studio project
中的web.config文件包含以下行:
<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>\
这些线条为您提供智能感。
答案 3 :(得分:0)
将输出路径更改为bin /是正确的答案,但我稍微扩展了一下。所有创建具有intellisense支持的“vanilla”类库所需的步骤如下
创建或打开现有的类库项目(如果打开现有项目,请确保删除MVC5 nuget包)
添加MVC(5.0)nuget包(在解决方案资源管理器中右键单击项目 - &gt;管理NuGet包 - &gt;搜索MVC并安装“Microsoft ASP.NET MVC”)
关闭所有打开的.cshtml文件
右键点击项目 - &gt;属性 - &gt;构建 - &gt;将输出路径更改为“bin /”
将以下最小的Web.config添加到类库项目的根目录(Web intellisense只需要配置文件。配置(通过Web.config)应该在托管ClassLibrary程序集的WebApplication中完成)
清理并构建解决方案。
打开cshtml文件
的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>
我也刚刚在博客上发表了这篇http://thetoeb.wordpress.com/2014/01/05/enabling-mvc5-intellisense-in-a-classlibrary-project/
答案 4 :(得分:0)
我解决了如下问题。在web.Config中,添加:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
</appSettings>
作为参考,webpages:Version
执行此操作:
如果web.config文件中缺少密钥,例如默认的Razor V2 / V3 网站,VS将使用bin目录的razor dll版本来确定 设计时间剃刀引擎dll加载。