【问题标题】:appname.exe.config not created on windows application未在 Windows 应用程序上创建 appname.exe.config
【发布时间】:2020-07-10 21:40:38
【问题描述】:

当我构建一个 Windows 应用程序时。它不起作用,因为它无法读取我的 app.config 文件。我查看了 bin 目录,它没有 appname.exe.config 文件。如果我手动复制 app.config 并将其重命名为 appname.exe.config 应用程序将工作..但是当我构建项目时,这个文件永远不会自动创建。我错过了什么?为什么我的项目没有创建它?我查看了整个文件夹结构,没有其他配置文件。

【问题讨论】:

  • 在属性中是否将本地复制设置为true?
  • @bowlturner -- 默认情况下未设置为 true。
  • @roryap 这就是我问的原因。
  • @bowlturner - 我的意思是它不需要。无论如何都应该生成该文件。
  • 什么是windows应用程序?你的项目模板是什么?

标签: c# app-config


【解决方案1】:

我认为这里的每个人都在给你虚假信息。我认为@bowlturner 是对的。根据微软的说法,您确实需要将app.configCopy to output directory 属性设置为Copy AlwaysCopy if newer。来自Microsoft's MSDN Site

在 Visual Studio 中进行开发时,将应用的源配置文件放在项目目录中,并将其 Copy To Output Directory 属性设置为 Copy always 或 Copy(如果更新)。配置文件的名称是应用程序的名称,扩展名为 .config。例如,一个名为 myApp.exe 的应用应该有一个名为 myApp.exe.config 的源配置文件。

Visual Studio 会自动将源配置文件复制到编译后的程序集所在的目录,以创建输出配置文件,该文件与应用程序一起部署。

【讨论】:

  • Visual Studio 会自动将源配置文件复制到放置已编译程序集的目录,以创建与应用程序一起部署的输出配置文件。 这意味着您可以无需将“复制到输出目录”设置为Copy AlwaysCopy if newer
  • 但这就是问题所在。使用任何这些设置都不会创建它。
  • @dotctor -- 是的,如果您将属性设置为 Copy AlwaysCopy if newer。阅读上面一行:在 Visual Studio 中开发时,将应用的源配置文件放在项目目录中,并将其 Copy To Output Directory 属性设置为 Copy Always
  • 创建一个简单的控制台或 winforms 应用程序并查看 app.config 上的属性。
  • @GregP - 删除您的 app.config 文件。然后右键单击您的项目,然后选择添加,添加新项目。在列表中找到“应用程序配置文件”并添加。
【解决方案2】:

正确的设置是:

  • Build Action = None
  • Copy to Output Directory = Do not copy

而且非常重要的是,项目文件需要包含这个元素:

  <ItemGroup>
    <None Include="App.config" />
  </ItemGroup>

【讨论】:

    【解决方案3】:

    唯一对我有用的是完全删除 bin\ 和 obj\。重新编译,文件就创建好了。

    【讨论】:

    • 只是从我的经验中确认更多细节:我在使用 Visual Studio 2019 (16.9.4) 构建 .NET 4.7.2 控制台应用程序时发生了这种情况。我将 App.config 复制到项目中,当我构建项目时,它不会替换 bin 文件夹中的默认 appname.exe.config。尝试了清洁/重建/删除垃圾箱内容的各种组合;最后删除 bin/obj 文件夹本身修复了它。
    【解决方案4】:

    查看App.config属性,应该是:
    BuildAction:无
    CopyToOutputDirectory:不要复制
    自定义工具和自定义工具命名空间应该为空

    也尝试重建项目。右键单击项目 -> 重建

    【讨论】:

    • 可以尝试新建项目,看看是否有问题
    • 那是我的下一次尝试..午餐后会尝试。
    • 我尝试了一个新项目,但仍然没有创建这个文件。
    【解决方案5】:

    假设您使用的是 Visual Studio,请在解决方案资源管理器中单击您的配置文件,然后在“属性”面板中将“复制到输出目录”设置为“不复制”以外的内容。

    【讨论】:

    • 这会将App.Config 放入输出文件夹,而不是appname.exe.config
    猜你喜欢
    • 1970-01-01
    • 2018-06-07
    • 2017-03-06
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多