即使定义了架构,也无法获得自定义配置的 VS2013 Intellisense
Not getting VS2013 Intellisense for custom config even with schema defined
我有我可以正确阅读的自定义配置部分。现在我想要它的 Intellisense。
我创建了我的架构,方法是首先创建一个仅包含我的配置部分的 XML,然后让 VS2013 为我生成架构文件。将其命名为 CustomConfig.xsd
并添加到我的项目中。我根据@stakx 在 this SO item 中的回答更新了架构,所以它看起来像这样:
<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
并查看 属性 Window 时,架构显示我的架构文件已勾选。所以我只能假设它正在从我的 app.config
中获取模式属性。但是没有智能感知。
更新
我刚刚意识到我的 app.config
上根本没有智能感知。
我在 VS2015 上打开了我的解决方案,它为我的自定义配置提供了 Intellisense。
然后我注意到在我的 VS2013 上,出于某种原因,默认情况下不使用 DotNetConfig.xsd
。 VS2015 不是这种情况。当我在 VS2013 上勾选它以便使用它时,我的自定义配置的 Intellisense 开始工作。
我有我可以正确阅读的自定义配置部分。现在我想要它的 Intellisense。
我创建了我的架构,方法是首先创建一个仅包含我的配置部分的 XML,然后让 VS2013 为我生成架构文件。将其命名为 CustomConfig.xsd
并添加到我的项目中。我根据@stakx 在 this SO item 中的回答更新了架构,所以它看起来像这样:
<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
并查看 属性 Window 时,架构显示我的架构文件已勾选。所以我只能假设它正在从我的 app.config
中获取模式属性。但是没有智能感知。
更新
我刚刚意识到我的 app.config
上根本没有智能感知。
我在 VS2015 上打开了我的解决方案,它为我的自定义配置提供了 Intellisense。
然后我注意到在我的 VS2013 上,出于某种原因,默认情况下不使用 DotNetConfig.xsd
。 VS2015 不是这种情况。当我在 VS2013 上勾选它以便使用它时,我的自定义配置的 Intellisense 开始工作。