首页 > 解决方案 > 将设置添加到 app.config 或将设置添加到 *.exe.config 就足够了?

问题描述

最近的一篇文章: https ://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/ 宣布了针对触摸屏支持的间歇性问题的可能解决方案。当我阅读文档时,只需更改 app.config 文件。见行:

“您可以使用以下 app.config 条目选择加入新的触控实现。

    <runtime>
            <AppContextSwitchOverrides value="Switch.System.Windows.Input.Stylus.EnablePointerSupport=true"/>

</runtime>

在以下部分:

对 Windows 10 的 WPF 触控/触控笔支持

我的问题是:我可以只在 Myapp.exe.config 中进行更改,还是必须在 app.config 中进行更改?也许问题可能是:app.config 信息是在编译时使用还是只是翻译成 myapp.exe.config?

此外,我想知道是否可以离开:

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

文档只提到了添加 EnablePointerSupport 并没有提到在配置文件中更改版本。事实上,我确实下载了 .NET Framework 4.7 并安装,但没有更改配置文件中的版本。我需要吗?

谢谢。

标签: c#windowstouchapp-config

解决方案


我可以只在 Myapp.exe.config 中进行更改,还是必须在 app.config 中进行更改?

如果您的 EXE 已部署,您可以更改 App.Exe.Config,重新启动应用程序并使用新的配置设置。如果您为 ASP.Net 应用程序执行此操作(即更改 web.config),它将导致 IIS 中的应用程序池被回收并使用新的 web.config 设置。

显然,将任何更改添加到实际的 App.Config,以便下次编译时将其自动添加到输出 App.Exe.Config。

您将对此有更多疑问,并且所有这些都记录在此处,请仔细阅读以下内容:

https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5


文档只提到了添加 EnablePointerSupport 并没有提到在配置文件中更改版本。事实上,我确实下载了 .NET Framework 4.7 并安装,但没有更改配置文件中的版本。我需要吗?

除非您使用 .Net 4.7 特定功能,否则您可以将版本保留为 .Net 4.5。

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>

在这种情况下,该文章特别说明了它在 .Net 4.7 中的错误修复。所以你需要使用4.7。

要更改此设置,您可以编辑项目的“构建”选项卡属性(或在配置文件中手动)。

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>

这是对 .Net Frameworks 与 SKU 的参考: https ://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element


如果 app.config 在编译时用于生成 Myapp.exe.config 文件以外的任何内容。

  • 没错,它在编译时用于生成 App.Exe.Config。

  • 许多人将配置设置存储在配置文件中,因此 App.Exe.Config 也可以在运行时进行编辑。归根结底,它只是一个 XML 文件。

  • 另请注意,您可以在设计时针对不同环境在 App.Configs 上进行转换:

在此处输入图像描述


推荐阅读