即使定义了模式,也没有获得VS2013自定义配置的智能感知

本文关键字:自定义 VS2013 配置 感知 智能 定义 模式 | 更新日期: 2023-09-27 18:14:11

我有自定义配置部分,我可以正确阅读。现在我想用Intellisense。

我通过首先创建一个只有我的配置部分的XML来创建我的模式,然后让VS2013为我生成模式文件。命名为CustomConfig.xsd,并添加到我的项目。我根据@stakx在这个SO项目中的答案更新了模式,所以它看起来像这样:

<xs:schema id="customConfigSchema"
           targetNamespace="http://tempuri.org/customConfig.xsd"
           elementFormDefault="qualified"
           xmlns="http://tempuri.org/customConfig.xsd"
           xmlns:mstns="http://tempuri.org/customConfig.xsd"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="customConfig">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="someElement">
          <xs:complexType>
            ...
          </xs:complexType>
        </xs:element>
        ...
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

然后在我的app.config中,我将模式细节添加到<customConfig>中,如下所示:

<configuration>
  <configSections>
    ...
    <section name="customConfig" type="..." />
  </configSections>
  ...
  <customConfig xmlns="http://tempuri.org/customConfig.xsd" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema" 
                xsi:noNamespaceSchemaLocation="customConfig.xsd">
    <someElement ... />
  </customConfig>
</configuration>

保存一切,然后我试着通过编辑<someElement>来测试它,但是没有智能感知。我错过了什么?

我可以看到,当我打开app.config并查看属性窗口时,Schemas显示我的模式文件被选中。所以我只能假设它是从我的app.config中拾取模式属性。但是没有智能感知

我刚刚意识到我没有得到智能感应在我的app.config

即使定义了模式,也没有获得VS2013自定义配置的智能感知

我在VS2015上打开了我的解决方案,它给了我自定义配置的智能感知。

然后我注意到在我的VS2013上,由于某种原因,默认不使用DotNetConfig.xsd。这在VS2015上不是这样的。当我在VS2013上勾选它时,我的自定义配置的智能感知开始工作。