转换为 Visual Studio 2010 / .Net 4.0 后 app.config “找不到架构信息”

Posted

技术标签:

【中文标题】转换为 Visual Studio 2010 / .Net 4.0 后 app.config “找不到架构信息”【英文标题】:app.config "Could not find schema information" after converting to Visual Studio 2010 / .Net 4.0 【发布时间】:2011-03-11 13:34:06 【问题描述】:

将我的项目升级到 Visual Studio 2010 和 .Net 4.0 后,我的 app.config 文件会在构建项目时生成以下消息:

找不到元素“supportedRuntime”的架构信息。 找不到属性“版本”的架构信息。 找不到属性“sku”的架构信息。

这是我的整个 app.config 文件:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
  </startup>
</configuration>

如果我创建一个新的 VS2010 项目并从字面上复制/粘贴相同的 app.config 文件,我不会收到此类消息。

显然这些消息不会导致任何运行时问题,但它们仍然令人讨厌和不安。

如何解决导致这些消息出现的问题?

我在app.config configSections custom settings can not find schema information 看到了答案,但我在属性列表中看不到任何地方可以输入架构的路径。

谢谢。

【问题讨论】:

【参考方案1】:

我将架构从 DotNetConfig 更改为 DotNetConfig35,它解决了这个问题。这在 app.config 文件的属性中可用。

在解决方案资源管理器中右键单击 app.config 文件会给出文件的属性,在 app.config 文件本身的编辑窗口中右键单击会给出 XML 文档的属性。

【讨论】:

注意到因为这让我一开始感到困惑。至少在 VS2k10 中,您需要查看文件在编辑窗口中显示时显示的属性,而不是在解决方案资源管理器中选择文件时显示的属性。 如果我尝试这样做,那么如果我选择“DotNetConfig35.xsd”,VS2k10 将始终保留“DotNetConfig.xsd”,然后我有两个架构,我会收到很多额外的警告。 @lanoxx:您的问题的解决方案是here。 我正在使用 VS2012 并从 .NET 4.5 切换到 .NET 3.5 项目,但我仍然收到消息。第一个架构被列为C:\Program Files (x86)\Microsoft Visual Studio 11.0\xml\Schemas\DotNetConfig35.xsd【参考方案2】:

您确定转换成功吗?可能没有配置正确的目标框架。打开您的项目属性并检查目标框架实际上是.NET Framework 4 还是.NET Framework 4 Client Profile

【讨论】:

它确实是 .NET Framework 4 客户端配置文件,正如预期的那样。升级过程中没有错误。【参考方案3】:

删除 app.config 中的以下部分:

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/> 
</startup>

【讨论】:

欢迎来到 ***。您可以通过缩进 4 个空格或使用答案提交表单上的 按钮来格式化您的“代码”部分。我已经为你做了改变。此外,不需要 html 标记(br 等)。 不是解决这个问题的好方法。如here 所述, 元素应由使用 .NET Framework 1.1 或更高版本构建的所有应用程序使用。【参考方案4】:

如果它已经在运行,下次尝试在任务管理器中终止该进程。

P.S:它可能在远程机器上运行。

更新:由于没有解决方案,我重复我的建议...停止投票。也许这是一个错误,但它可能与未终止的调试过程有关。只需检查任务管理器并杀死 fx2.0 的 xyz.vhost.exe,如果有的话。

【讨论】:

没有。 .NET 2.0 版本将在内存中运行,如果最近升级到 FX4...我的经验表明。

以上是关于转换为 Visual Studio 2010 / .Net 4.0 后 app.config “找不到架构信息”的主要内容,如果未能解决你的问题,请参考以下文章

C#“向后”将 Visual Studio 2010 .csproj 项目转换为 2008? [复制]

转换为 Visual Studio 2010 / .Net 4.0 后 app.config “找不到架构信息”

Visual Studio 2010 解决方案查看器或转换器?

Visual Studio各版本工程文件之间的转换

无法在 Visual Studio 2015 中将 typedef 转换为 std::pair

是否需要将 Visual Studio Express 解决方案转换为 Visual Studio Professional 解决方案?