C#-打开Settings.Settings会在app.config中获取关于无效xml的错误(添加configSource时)

C#-打开Settings.Settings会在app.config中获取关于无效xml的错误(添加configSource时),c#,connection-string,C#,Connection String,在众多示例之后,我在app.config文件中添加了以下内容: 当我运行应用程序时,一切似乎都正常,但当我尝试打开Settings.Settings文件时,出现错误: “读取app.config文件时出错。该文件可能已损坏或包含无效的XML。” Settings.Settings文件将打开,但如果我尝试保存它,会收到类似的错误消息 App.config文件: 恩美 0 听起来你的应用程序配置文件没有正确配置,你能发布你的应用程序配置吗?我刚收到一个项目,当你试图打开设置文件时,该项目产

在众多示例之后,我在app.config文件中添加了以下内容:

当我运行应用程序时,一切似乎都正常,但当我尝试打开Settings.Settings文件时,出现错误:

“读取app.config文件时出错。该文件可能已损坏或包含无效的XML。”

Settings.Settings文件将打开,但如果我尝试保存它,会收到类似的错误消息

App.config文件:


恩美
0

听起来你的应用程序配置文件没有正确配置,你能发布你的应用程序配置吗?

我刚收到一个项目,当你试图打开设置文件时,该项目产生了相同的错误。设置文件:

“读取app.config文件时出错。该文件可能已损坏。” 可能已损坏或包含无效的XML。“

在确保XML文档语法正确(使用)之后,我删除XML元素,直到错误消失

在我的例子中,app.config文件包含两个ConnectionString元素:

产生错误

  • 配置
    • 连接字符串
    • 连接字符串
没有生成错误

  • 配置
    • 连接字符串

因此,当app.Config文件包含语法正确但逻辑不正确的元素时,可能会生成此错误。

我在手动重命名解决方案(项目和命名空间)时遇到了相同的错误。
该错误是由App.config文件的
节点中重复的
元素引起的。我不确定是什么操作导致创建了重复元素,但解决方案是删除重复元素。

我也遇到了这个问题。这似乎是由app.config文件中的多个“奇怪”引起的

我解决问题的方法是:

  • 备份设置文件和.cs,以及app.config(以防万一)
  • 删除引用设置的configSections元素,例如app.config中的userSettings
  • 从app.config中删除applicationSettings或userSettings部分
  • 保存你的app.config
  • 打开设置编辑器并进行任何小更改,然后保存

  • 如果仍然出现错误,请开始逐个删除部分,直到找到重复/有问题的部分。

    我也有同样的问题。与您一样,我在一个单独的文件中有连接字符串:

    <connectionStrings configSource = "testConnect.config"/>
    
    
    
    除了在使用设置时删除元素之外,我找不到其他解决方法。

    
    
    <configuration>
      <connectionStrings>
        <add name=""
      </connectionStrings>
    </configuration>
    

    我跨越这条路太晚了,但即使是我也有同样的问题,尽管app.config中的一切看起来都是正确的,但我还是遇到了这个错误。 在将一些属性设置添加到app.config文件后,我试图编辑/打开settings.settings文件,这时我出现了此错误。 我所做的是,我恢复了对app.config所做的所有更改,并将所有必需的值直接添加到设置文件中,从而解决了问题。 直接向app.config添加值是造成问题的原因

  • 在另一个VS解决方案上,创建一个新项目,该项目的名称和命名空间与您正在处理的项目相同
  • 在新项目的“属性>>设置”下,创建您正在处理的项目中的所有设置
  • 进入新的项目文件夹,即C:\Users\YourUser\Documents\Visual Studio 2022\Projects\ReportsApplication1\ReportsApplication1并复制app.config文件
  • 粘贴此文件并替换当前项目中的文件
  • (已完成)

  • 我还在
    connectionString
    元素中使用
    configSource
    。我认为我遇到的问题是,我引用的是包含的配置文件,其路径与构建目标目录(例如bin\debug\ConnectionStrings.config)相对。我已将ConnectionString.config链接项设置为复制到生成时的输出目录。但是,VS IDE希望在从
    app.settings
    而不是
    bin\debug\program.exe.settings
    生成之前解决它,因此我要么在每个项目中都有一个额外配置文件的副本(这会消除好处),要么使用完全限定的路径。如果要使用后一种方法,我需要用某种环境变量来表示路径,以便配置文件可以在开发机器和部署机器上工作。可能是这样,但看起来是这样

    如果有帮助,您可以尝试根据架构验证app.config,如中所述。在我的例子中,xml通过了验证,但仍然得到错误消息


    此外,如果任何人在使用此设置添加代码优先迁移时遇到问题(出现错误,无法找到ConnectionString.config),这可能是相同的根本原因。

    我一直在处理我的Settings.Settings文件和app.config文件。我没有找到任何重复的节点,但是我已经在我的app.config中移动了一些表示设置的父节点的顺序。我只是不喜欢他们的订单,我想我可以在app.config中即时更改。我错了

    直到我最终删除app.config,更改Settings.Settings中的设置并保存/清理解决方案/重建解决方案,我才发现问题出在哪里。然后,我可以将新生成的app.config与前一个出错的app.config进行比较。

    我注意到
    <configuration>
      <connectionStrings>
        <add name=""
      </connectionStrings>
    </configuration>
    
    <section name="oracle.manageddataaccess.client" 
        type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    
    <sectionGroup name="oracleClient">
        <section name="oracle.manageddataaccess.client"
            type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </sectionGroup>