【问题标题】:Get razor intellisense in library project?在图书馆项目中获得剃刀智能感知?
【发布时间】:2015-09-19 20:01:39
【问题描述】:

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

这是为了使用RazorEngine 库。

【问题讨论】:

    标签: c# razor intellisense


    【解决方案1】:

    您必须编辑您的 .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)' != ''" />
    

    【讨论】:

      【解决方案2】:

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

      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/”
      4. 将以下最小 Web.config 添加到您的类库项目的根目录(智能感知仅需要 Web 配置文件。配置(通过 Web.config)应在托管您的 ClassLibrary 程序集的 WebApplication 中完成)
      5. 清理并构建解决方案。

      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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-16
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        • 2015-02-17
        • 2013-12-25
        • 2016-08-22
        相关资源
        最近更新 更多