【问题标题】:First release with VS - a lot of output (not only an .exe), can I reduce?VS的第一个版本 - 很多输出(不仅仅是一个.exe),我可以减少吗?
【发布时间】:2012-08-22 09:39:34
【问题描述】:

编译一个简单的控制台应用程序项目以进行发布后,我得到了很多输出:

  • .exe => 很好,我肯定需要这个 :)
  • MyApp.exe.config => 我正在使用和更改它,没关系
  • 一些 .dll 文件 => 这些是我使用的外部库,我认为也可以

未知:

  • MyApp.pdb
  • MyApp.vshost.exe
  • MyApp.vshost.exe.config
  • MyApp.vshost.exe.manifest
  • log4net.xml => 咦,log4net的config已经在MyApp.exe.config里了,怎么还有个log4net config xml呢?

我可以删除其中一些而不会在以后遇到麻烦吗?我可以以某种方式将 .dll 添加到 .exe 中(这样我就不必总是将所有 .dll 与 .exe 一起复制)?

【问题讨论】:

  • @Marco “客户端电脑”是什么意思?他们为什么在那里?

标签: c# .net visual-studio-2010 dll compilation


【解决方案1】:

这是意料之中的,而且都是有目的的——但你是对的:你不需要任何“未知”文件,并且可以删除它们(当然也不需要分发它们)。信息:

  • MyApp.pdb 是调试符号;对堆栈跟踪很有用,如果有问题也可以在以后进行调试;您可以通过“高级构建设置”对话框(项目属性、构建、高级...)中的“调试信息”选项禁用此功能,但我不建议这样做
  • MyApp.vshost.* 是调试器宿主进程;您可以通过禁用“启用 Visual Studio 托管进程”选项(项目属性、调试)来禁用此功能
  • log4net.xml 是智能感知 cmets - 在添加引用时对 IDE 使用很有用

【讨论】:

    【解决方案2】:

    这些文件并不打算分发到客户端电脑,也对应用程序正常工作没有用处:它们(也)用于调试目的。
    如果您想将 dll“合并”到您的项目中,请尝试使用 Microsoft 实用程序 ILMerge

    【讨论】:

      【解决方案3】:

      当您在发布配置中构建解决方案时,将没有 *.vshost.*.,这是用于调试托管过程的可执行文件。

      log4net.xml 你可以删除,我相信。

      【讨论】:

        【解决方案4】:

        您应该可以删除/不部署其中的大部分。 如果 dll 是托管程序集,您可以使用 IlMerge,它将为您将 dll 添加到 exe 中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-04-15
          • 1970-01-01
          • 2011-02-18
          • 2011-08-03
          • 1970-01-01
          • 2022-10-06
          • 2013-09-29
          相关资源
          最近更新 更多