-->

获取System.Web.Optimization在剃刀视图类库中工作(Getting System

2019-09-19 23:08发布

我建立一个模块化MVC4应用程序,其中,每个模块(=区域)是一个类库。 模型和控制器编译成.dll文件,意见被复制到相应的文件夹。 在运行时,一切工作正常。 在设计时,还剩下一个恼人的问题:当一个类库中编辑Razor视图时,Visual Studio不承认System.Web.Optimization命名空间。

The name "Styles" does not exist in the current context.
The name "Scripts" does not exist in the current context.

我尝试添加的组件,以在根和内web.config中的System.Web /汇编部分:

<add assembly="System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

我试了一下没有具体的版本了。 这两种方法都没有解决问题,反而引发一个asp.net运行时错误(在Razor视图的第一行可见):

Could not load file or assembly 'System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

该组件项目中所引用和“复制本地”设置为“真”。 它也添加为剃刀配置部分命名空间。

我怀疑这是一个普遍的问题,我会在未来的其他组件遇到的问题。

编辑:我做了一般设置获得智能感知在类库中的Razor视图去。 一切正常,到目前为止,除了VS2010不承认优化命名空间。

Answer 1:

一个添加web.config文件到您的类库项目具有以下内容(摘自(包含剃刀意见之一)的根本博客文章 ):

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.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=4.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" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <system.web>
    <compilation targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </assemblies>
    </compilation>
  </system.web>
</configuration>

这将欺骗的Visual Studio,以为它是一个Web项目,并启用智能感知。



Answer 2:

我在我的决心已经安装Microsoft.Web.Optimization用的NuGet ASP MVC项目已在前期建造鉴于此错误。

从工具菜单,选择库包管理器,然后单击程序包管理器控制台。 输入以下命令来更新捆绑和缩小:

Install-Package Microsoft.Web.Optimization -Pre

这里有些additionals http://forums.asp.net/t/1812274.aspx/1



Answer 3:

@Vladimir,我使用Visual Studio 2013,并有轻微改变你的线路:

安装,包装Microsoft.AspNet.Web.Optimization

这个固定为我。



Answer 4:

下列:

Install-Package Microsoft.AspNet.Web.Optimization

对我来说工作正常。



Answer 5:

Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0.0

如果你的项目需要指定的版本,请加-version ...选购真正的版本。 这将是对你有帮助。



文章来源: Getting System.Web.Optimization to work in a razor view within a class library