8

我有一个商业项目,我将根据使用 razor 制作的模板创建电子邮件。我怎样才能在那里获得剃须刀智能感知?是包括几个程序集那么简单,还是我需要做一些更反驳的事情?

这是为了使用RazorEngine库。

4

2 回答 2

3

您必须编辑.csproj文件。添加以下ProjectTypeGuids节点(仅在现有ProjectGuid节点下方添加它们)。

<ProjectGuid>{28AD1627-3486-48C2-A045-EFFBB441582B}</ProjectGuid>
<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

保存文件,然后使用 Visual Studio 重新打开它。VS2012 然后执行一些转换,但最后一切正常。工具在那里。

根据您在做什么(Razor Generator?),您将需要一些参考资料(System.Web、System.Web.WebPages、System.Web.Mvc、System.Web.Razor、System.Web.Routing...)。

这是用 VS2012 测试的。

在 Visual Studio 2013 中,我还必须替换 .csproj 文件中的以下行,因为它指向错误的位置:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
于 2012-10-08T18:10:15.583 回答
3

这是实现这一目标的一个很好的指南。

http://thetoeb.de/2014/01/05/enabling-mvc5-intellisense-in-a-classlibrary-project/

步骤是:

  1. 添加 MVC (5.0) nuget 包(在解决方案资源管理器中右键单击项目 -> 管理 NuGet 包 -> 搜索 MVC 并安装“Microsoft ASP.NET MVC”)
  2. 关闭所有打开的 .cshtml 文件
  3. 右键项目 -> 属性 -> 构建 -> 将输出路径更改为“bin/”</li>
  4. 将以下最小 Web.config 添加到类库项目的根目录(智能感知仅需要 Web 配置文件。配置(通过 Web.config)应在托管 ClassLibrary 程序集的 WebApplication 中完成)
  5. 清理并构建解决方案。

网络配置:

<?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>
于 2015-09-19T12:01:39.150 回答