这只是一个警告。运行它时,您的项目将会编译并工作得很好。现在为了在ASP.NET MVC应用程序之外获得对Razor模板的工具支持,您可以查看following blog post。
所以,骗取Visual Studio的(愚蠢)智能感知只需在Windows服务项目的根目录具有以下内容拖放一个web.config(是的web.config):
<configuration>
<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>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.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.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<system.web>
<compilation targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
</system.web>
</configuration>
在运行时这绝对是不必要的,当然也没有效果(你的应用程序之前也是如此)。这只是诱使VS认为这是一个Web应用程序,并为您提供Intellisense。
我添加了一个新的web.config文件,你用上面的内容,我的类库项目建议,但是我仍然没有感觉到智能。不过,你是对的,否则一切正常。将再次以清新的眼光再次审视...... – 2012-07-21 07:36:41
您可能需要关闭并重新打开剃刀视图。也许甚至重新启动VS或其他。对我来说,它只是关闭并打开VS中的.cshtml文件,但谁知道呢。 – 2012-07-21 07:43:51
关闭并重新打开VS没有工作,要么:-( – 2012-07-21 16:35:15