我需要从
Windows服务发送电子邮件,并发现了
ActionMailer.net,一个模板化的电子邮件系统,可以在ASP.Net MVC应用程序中使用或独立使用.
遵循独立教程
http://geeksharp.com/2011/07/06/actionmailer-0-6-released/
我正在创建一个视图.但是,当我在视图中输入任何文本时,它带有蓝色的波浪下划线.鼠标悬停在蓝色的波纹上,显示工具提示中的错误消息:
There is no build provider registered for the extension ‘.cshtml’ You can register one in the
<compilation><buildProviders>
section of machine.config or web.config
似乎我错过了设置剃须刀支持的步骤.
我失踪了什么
解决方法
这只是一个警告.当你运行它的时候,你的项目将会被编译并且工作得很好.现在为了在ASP.NET MVC应用程序之外获得对您的Razor模板的工具支持,您可以查看
following blog post.
所以为了欺骗Visual Studio(愚蠢的)Intellisense只需在Windows服务项目的根目录中放置一个web.config(yeah 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,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=3.0.0.0,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,PublicKeyToken=31bf3856ad364e35" /> </assemblies> </compilation> </system.web> </configuration>
在运行时,这绝对是不必要的,当然没有任何效果(你的应用程序也在工作之前).这只是为了诱骗VS认为这是一个Web应用程序,并为您提供Intellisense.