web-dev-qa-db-ja.com

タイプまたは名前空間名「最適化」は、名前空間「System.Web」に存在しません

私は新しいWebサイトをメインサイトとして展開していますが、見事に機能しています。

ルートURLの下のすべてのアプリケーションも、1つを除いて機能します。レガシーシステム(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で実行されています

これを修正するにはどうすればよいですか?他に何ができますか?

[〜#〜] udpdate [〜#〜]

それが違いを生むかどうかはわかりませんが、エラーで参照するWeb.Configは、レガシーアプリケーションではなく、新しいWebサイト用です。メインサイトの構成がなぜ重要なのかはわかりません。

[〜#〜] clarification [〜#〜]

レガシーアプリケーションのソースコードにアクセスできないため、そのアプリケーションのプロパティを調整できません。最適化dllをサイトに貼り付けても、修正されませんでした。他のユーザーには機能するかもしれませんが、私には機能しません。

回避策

別のURLの下に新しいサイトをセットアップし、ルートURLにトラフィックを新しいURLにリダイレクトし、レガシアプリケーションを置き換えられるまでそのまま実行できるようにします。非常にずさんなソリューションですが、今のところ動作します。

29
davids

私は今この問題に直面しました:

Error

最適化フレームワークを再インストールしましたが、すべて正常に機能しました。

Install-Package Microsoft.AspNet.Web.Optimization

私はそれが誰かを助けることを願っています!

38
Shubh

MVC5で新しい領域を作成した後、同じ問題に直面しました。自動生成web.configファイルがあります。 web.configファイルViewsフォルダーの下にある行を確認してください

<add namespace="System.Web.Optimization" />
  1. これが必要な場合は、次のコマンドを使用してインストールします。

    Install-Package Microsoft.AspNet.Web.Optimization
    

    以下のようなパッケージマネージャーコンソールで

    pmc

  2. 必要ないと思う場合は、単に<add namespace="System.Web.Optimization" />web.configファイルの次のセクションの行

    <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>
    
29
reza.cse08

レガシーアプリケーションのBinフォルダーを確認します。そのDLLをドロップするだけでよい場合があります。 System.Web.Optimization名前空間はASP.NET 4.5の時点で存在するため、サポートされていない場合があります。従来のアプリはそれより古い場合があります。

9
beautifulcoder

Visual Studioで..プロジェクトに移動し、参照ツリーを確認します。

system.Web.Optimizationを右クリックして、Propertiesを選択します

pathを探してください。空の場合は、PCでSystem.Web.Optimization.dllのファイル名を探し、それをbinフォルダーにコピーしますプロジェクトとそれはそれを解決します

3
stackunderflow

「CS0234 C#型または名前空間名「最適化」は名前空間「System.Web」に存在しません(アセンブリ参照がありませんか?」」と私はちょうど経験していましたが、このstackoverflowページが見つかりました。 -私の原因は、作業していたWebフォーム(aspxページ)の名前を変更したことと、そのフォームの背後にある公開部分クラスの名前も変更したかったためです。これを行うと、前述のエラーコードが表示されます。追加した "using System.Web.Optimization; "をコードビハインド(C#)に追加し、ソリューションを"クリーン "し、次に"ビルド "してからソリューション、"リビルド "して、エラーがなくなり、usingステートメントが使用されなかったため、削除しました私のソリューションにはそのようなエラーもエラーもないので、この奇妙な話を共有すると思いました。おそらく、「using」ステートメントを使用する必要はありませんでしたが、何でもかまいません。