簡體   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