47

Visual Studio には、MS Enterprise Library 4.0 アプリケーション ブロックを使用する asp.net 3.5 プロジェクトがあります。

Web 構成ファイルを開くと、エラー リストが 99 個のメッセージでいっぱいになります。

Could not find schema information for the element 'dataConfiguration'.  
Could not find schema information for the attribute 'defaultDatabase'.  
Could not find schema information for the element 'loggingConfiguration'.   
Could not find schema information for the attribute 'tracingEnabled'.   
Could not find schema information for the attribute 'defaultCategory'.  

Web.config ファイルを閉じると、それらは消えます (ただし、ファイルを再度開く必要があるとすぐに戻ってきます)。

調べてみたところ、web.config ファイル内のスキーマを適切に「理解」し、それにインテリセンスを提供するために、Visual Studio が必要とする XSD またはスキーマ ファイルが欠落しているためであることがわかりました。

VSに適切なスキーマ情報を提供する方法、またはこれらのメッセージをオフにする方法を知っている人はいますか?

@Franci-情報をありがとう、私はそのツールとMMCスナップインを試しました(Web.configのフォーマットを爆破する傾向があります)が、それでも私が受け取る刺激的な警告を解決しません. 試してくれてありがとう。

4

6 に答える 6

31

現在のapp.configに基づいて新しいスキームを作成し、メッセージを非表示にしました。Visual Studioで「スキーマの作成」というボタンを使用したところ、xsdスキーマが作成されました。

スキーマを適切な場所に保存し、Schemasという名前のプロパティがあるapp.configファイルの[プロパティ]タブを参照してください。そこで変更ボタンをクリックすると、元のdotnetconfigスキーマと新しく作成した独自のスキーマの両方を使用するように選択できます。

于 2009-01-21T09:06:37.363 に答える
13

XSD は EntLib 5 に含まれており、Visual Studio スキーマ ディレクトリにインストールされます。私の場合、次の場所にあります。

「C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd」

環境

  • ビジュアル スタジオ 2010
  • エンタープライズ ライブラリ 5

警告を削除する手順

  1. Visual Studio プロジェクトで app.config を開きます
  2. XML ドキュメント エディタで右クリックし、[プロパティ] を選択します。
  3. 「EnterpriseLibrary.Configuration.xsd」への完全修飾パスを追加します

これらの「エラー リスト」「メッセージ」(「要素のスキーマ情報が見つかりませんでした」) は、app.config ファイルを開いたときにのみ表示されることに注意してください。「すべてのドキュメントを閉じて」コンパイルすると、メッセージは報告されません。

于 2011-09-22T15:34:06.720 に答える
11

EntLib構成用のツールを使用して構成し、ブロックapp.configをセットアップしました。LoggingConfiguration次に、これを にコピーしましたDotNetConfig.xsd。もちろん、すべての属性を網羅しているわけではありません。

<xs:element name="loggingConfiguration">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="listeners">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="add">
              <xs:complexType>
                <xs:attribute name="fileName" type="xs:string" use="required" />
                <xs:attribute name="footer" type="xs:string" use="required" />
                <xs:attribute name="formatter" type="xs:string" use="required" />
                <xs:attribute name="header" type="xs:string" use="required" />
                <xs:attribute name="rollFileExistsBehavior" type="xs:string" use="required" />
                <xs:attribute name="rollInterval" type="xs:string" use="required" />
                <xs:attribute name="rollSizeKB" type="xs:unsignedByte" use="required" />
                <xs:attribute name="timeStampPattern" type="xs:string" use="required" />
                <xs:attribute name="listenerDataType" type="xs:string" use="required" />
                <xs:attribute name="traceOutputOptions" type="xs:string" use="required" />
                <xs:attribute name="filter" type="xs:string" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="formatters">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="add">
              <xs:complexType>
                <xs:attribute name="template" type="xs:string" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="logFilters">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="add">
              <xs:complexType>
                <xs:attribute name="enabled" type="xs:boolean" use="required" />
                <xs:attribute name="type" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="categorySources">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="add">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="listeners">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="add">
                          <xs:complexType>
                            <xs:attribute name="name" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="specialSources">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="allEvents">
              <xs:complexType>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
            <xs:element name="notProcessed">
              <xs:complexType>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
            <xs:element name="errors">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="listeners">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="add">
                          <xs:complexType>
                            <xs:attribute name="name" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="switchValue" type="xs:string" use="required" />
                <xs:attribute name="name" type="xs:string" use="required" />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required" />
    <xs:attribute name="tracingEnabled" type="xs:boolean" use="required" />
    <xs:attribute name="defaultCategory" type="xs:string" use="required" />
    <xs:attribute name="logWarningsWhenNoCategoriesMatch" type="xs:boolean" use="required" />
  </xs:complexType>
</xs:element>
于 2009-01-21T09:45:10.950 に答える
1

「要素のスキーマ情報が見つかりませんでした...」を修正したのは

  • 私のapp.config.
  • エディタ ウィンドウで右クリックし、 を選択しPropertiesます。
  • プロパティ ボックスには という行があり、Schemasその行をクリックして、その行に表示される参照...ボックスを選択しました。
  • useプロジェクトがどこかにあるすべての行と、使用している.Netの現在のバージョンのボックスをチェックしただけです。例: DotNetConfig30.xsd.

その後、すべてがうまくいきました。

プロジェクトのスキーマ行がどのようにチェックされなかったのかはわかりませんが、それらがチェックされていることを確認したとき、私は仕事に戻りました。

于 2015-03-28T19:15:14.373 に答える
1

スキーマ ファイルを VS の XML Schema Caching フォルダにコピーしようとしましたか? そのフォルダーの場所は、VS Tools/Options/Test Editor/XML/Miscellaneous で確認できます。残念ながら、MS Enterprise Library 4.0 のスキーマ ファイルがどこにあるのかわかりません。

更新: MS Enterprise Library をインストールした後、.xsd ファイルがないようです。ただし、構成ファイルを編集するために使用できる EntLibConfig.exe という構成を編集するためのツールがあります。また、適切な構成セクションを構成ファイルに追加すると、VS は構成ファイルを適切に解析できるはずです。(EntLibConfig がこれらを追加しますが、自分で追加することもできます)。loggingConfiguration セクションの例を次に示します。

<configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

また、プロジェクト内の適切なアセンブリへの参照を追加する必要があります。

于 2008-10-07T19:24:54.183 に答える