在图书馆项目中获取razor intellisense?

时间:2012-04-28 23:46:05

标签: c# razor intellisense

我有一个商业项目,我将根据用剃刀制作的模板创建电子邮件。我怎样才能获得剃刀智能感知?它是否像包含一些装配一样简单,还是需要做一些更多的反击?

这是为了使用RazorEngine库。

2 个答案:

答案 0 :(得分: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文件中的以下行,因为它指向错误的loaction:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

答案 1 :(得分:3)

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

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

步骤如下:

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