繁体   English   中英

命名空间“System.Web”中不存在类型或命名空间名称“优化”

[英]The type or namespace name 'Optimization' does not exist in the namespace 'System.Web'

我正在部署一个新网站作为我的主要网站,它运行良好。

我在根 url 下的所有应用程序也都可以工作,除了一个。 这是一个被大量使用的遗留系统 (c#.net),不幸的是,我无法访问源代码。

当我运行旧应用程序www.mysite.com/crm 时,出现以下错误:

Server Error in '/crm' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to 
service this request. Please review the following specific error details and modify 
your source code appropriately. 

Compiler Error Message: CS0234: The type or namespace name 'Optimization' does not 
exist in the namespace 'System.Web' (are you missing an assembly reference?)

Source Error:


Line 17:     <pages>
Line 18:       <namespaces>
Line 19:         <add namespace="System.Web.Optimization" />
Line 20:       </namespaces>
Line 21:     <controls>

Source File: e:\WebSites\newsite\Web.config    Line: 19 


Show Detailed Compiler Output:

Show Complete Compilation Source:


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446

错误是列出了主站点的 web.config,它可以工作。 但是,只有当我在主站点下运行应用程序时才会发生这种情况。

这是在 Server 2008 R2 和 IIS7 上运行的

我该如何纠正? 我还能尝试什么?

更新

我不知道它是否有所作为,但它在错误中引用的 Web.Config 是针对新网站的,而不是针对旧版应用程序的。 我不确定为什么主站点配置是一个因素。

澄清

我无权访问遗留应用程序的源代码,因此我无法调整该应用程序的属性。 将优化 dll 粘贴到站点中也没有修复它。 它可能适用于其他用户,但不适用于我。

解决

我在另一个 URL 下设置新站点并将流量重定向到根 URL 到新 URL,并允许旧应用程序按原样运行,直到我们可以替换它。 非常草率的解决方案,但它现在有效。

我现在刚遇到这个问题:

错误

我重新安装了优化框架,一切正常:

Install-Package Microsoft.AspNet.Web.Optimization

在 MVC5 中创建一个新区域后,我遇到了同样的问题。 有自动生成web.config文件。 检查Views文件夹下的web.config文件有一行

<add namespace="System.Web.Optimization" />
  1. 如果您需要它,请使用以下命令安装它。

     Install-Package Microsoft.AspNet.Web.Optimization

    在包管理器控制台,如下所示

    管理中心

  2. 如果您认为不需要,那么只需从web.config文件的以下部分中删除<add namespace="System.Web.Optimization" />

    <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <!--<add namespace="System.Web.Optimization" />--> <add namespace="AutoParts.Web" /> </namespaces>

检查旧应用程序的Bin文件夹。 它可能只需要您放入那个 DLL。 System.Web.Optimization命名空间从 ASP.NET 4.5 开始就存在,因此它甚至可能不受支持。 旧版应用程序可能比这更旧。

在 Visual Studio 中.. 转到您的项目并查看引用树。

右键单击 System.Web.Optimization 并选择Properties

查找path ,如果是这种情况,您会发现它是空的,然后在您的 PC 中查找文件名 System.Web.Optimization.dll 并将其复制到您项目的bin文件夹中,这将解决它

我刚刚遇到:“CS0234 C# 命名空间‘System.Web’中不存在类型或命名空间名称‘优化’(您是否缺少程序集引用?)”并找到了这个 stackoverflow 页面。 -- 我的原因是因为我重命名了我正在使用的 Web 表单(aspx 页面),我还想重命名该表单后面的公共部分类。 这样做会导致上述错误代码。 我在后面的代码(C#)中添加了“ using System.Web.Optimization; ”,“清理”了解决方案,然后“构建”了解决方案,然后“重建”了解决方案,现在错误消失了,使用语句不是' t被使用,所以我摆脱了它。 我的解决方案不再有那个或任何错误,所以我想我会分享这个奇怪的故事。 我可能不需要使用那个“ using ”语句,但无论如何。

从 Views/Web.config 中删除引用对我有用。

主要到区域

@Html.ActionLink("My Area Home", "Index", "Home", new { area = "MyArea" }, null)

区域到主要

@Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM