8

Visual Studio Express 2010 で「ASP.NET 空の Web サイト」を作成しました。

App_Code のコード ファイルに、「using System.Web.Script.Serialization;」という行があります。

ファイルをサーバーにプッシュすると、次のエラーが発生しました。

例外メッセージ: c:\inetpub[....]\Extensions.cs(10): エラー CS0234: 型または名前空間名 'Script' が名前空間 'System.Web' に存在しません (アセンブリ参照がありませんか? ?)

(サーバーは、ASP.NET 4.0 がインストールされた IIS 7 で Windows Server 2008 を実行しています。)

これは Web プロジェクトではなく Web サイトであるため、ここで宣伝されている「発行」機能を使用できませんでした:タイプまたは名前空間名 'Script' は、名前空間 'System.Web' に存在しません。

最後に、掘り下げた結果、この名前空間が System.Web.Extension アセンブリに含まれていることがわかり、web.config を介して手動で含める必要があることがわかりました。

<compilation debug="true" targetFramework="4.0">
    <assemblies>
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </assemblies>
</compilation>

だから、私の質問:これについてもっと良い方法はありますか?

これは私のローカル プロジェクトでは必要ないため、最初にどのアセンブリを手動で参照する必要があるかを判断するにはどうすればよいでしょうか。次に、参照を行うために必要な情報を取得するにはどうすればよいでしょうか (つまり、PublicKeyToken を取得するにはどうすればよいでしょうか)。 ?

アップデート

これは Web プロジェクトではなく Web サイトであるため、参照のリストは、Web.Config に手動で追加するまで表示されません。

そのため、この場合、「Copy Local」を「true」に選択しても機能しません。

4

4 に答える 4

17

System.Web.ExtensionsプロバイダーのGACにdllがないようです。

名前空間System.Web.Scriptsはの一部ですSystem.Web.Extensions.dll

そうすればあなたはあなたの問題を解決することができます。

  1. プロジェクトで選択System.Web.Extensionsします参照
  2. [プロパティ]タブに移動し、に設定Copy Localしますtrue

これにより、このdllも確実にデプロイされます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-04-26T21:22:14.953 に答える
1

Web サイト プロジェクトでプロジェクト名/場所を右クリックし、[参照の追加... ] を選択します。そこからダイアログが表示されます。.NET タブを選択し、System.Web.Extensions を選択します。これにより、プロジェクトに追加されます。これは、追加する必要がある名前空間に対して行うことができます。

于 2012-04-26T22:08:43.353 に答える
1

プロジェクトへの参照として System.Web.Extensions を追加するだけです。web.config を使用して手動で行う必要はありません。Copy Local を true に設定して、ディストリビューションに含まれていることを確認します。

于 2012-04-26T21:25:09.320 に答える
0

私はWPFアプリケーションをやっているので、私の問題は似ていました。Extensions 参照を追加するだけでは、Intelisense が JavaScriptSerializer をインスタンス化するために必要なものを検出するのに十分ではありませんでした。System.Web.Script.Serialization; を使用して追加する必要があることが後でわかりました。そして、それは最終的に機能しました:)

于 2017-08-17T13:56:13.030 に答える