【问题标题】:EXE generated in obj\Debug folder在 obj\Debug 文件夹中生成的 EXE
【发布时间】:2011-01-07 18:24:49
【问题描述】:

我继承了一个 Windows 窗体应用程序,我发现每次编译时都会在 obj\Debug 文件夹中生成一个 .EXE 文件。

我更像是一个 Web 表单类型的开发人员,所以我对这里发生的事情有点困惑。为什么它是 .EXE 而不是 .DLL?这个文件实际上代表什么?这是 Windows 窗体应用程序的默认行为吗?或者,我的前任是否必须以某种方式进行设置?

据我所知,该解决方案没有部署项目。

【问题讨论】:

    标签: winforms visual-studio-2005 exe


    【解决方案1】:

    它们是delhpi 中多种类型的win 应用程序。如果您创建 Windows 窗体,则 .exe 将在调试文件夹中创建,如果您创建动态链接库 (DLL) 将创建 .dll 文件。每次编译应用程序时都会创建这些文件。

    【讨论】:

      【解决方案2】:

      为什么这是个问题?控制台应用程序项目在 obj/Debug 文件夹中也有 exe 文件。 obj 文件夹不用于运行应用程序 - 它们用于在 bin 文件夹中创建最终二进制文件。

      如果问题是关于 exe 与 dll 的问题,则使用编译后的 exe 文件来运行应用程序。在 Web 环境中您使用了 dll,因为 ASP.NET 新增了如何从中运行代码。但是 Windows 知道如何运行 exe 文件,因此您的任何代码实际上都可以编译为可执行文件。

      【讨论】:

      • 感谢您的回答。这不是问题,我很好奇这是否是 Win Forms 应用程序的默认行为,并希望更好地了解正在发生的事情。你的回答让我更明白了。
      【解决方案3】:

      每个应用程序,无论是 Web 还是 Windows,都会有一个执行入口点。 .Net 中编译形式的任何内容都是一个程序集,不一定是 DLL 文件。 EXE 文件是一个 .Net 程序集,在文件的开头有一个入口点和几个标头,将自己标识为 Windows 操作系统的独立可执行文件。对于您的 Web 应用程序,您的 asp.net 页面是用户在浏览器中键入并启动应用程序的入口点。如果是独立的 windows 窗体桌面应用程序,它是一个可执行文件,用户可以单击运行。

      我更像是一个 Web 表单类型的开发人员,所以我对这里发生的事情有点困惑。为什么它是 .EXE 而不是 .DLL?

      话虽如此,同样需要注意的是,就像 asp.net 不是开发 web 应用程序的唯一平台[你有 php、jsp 等],.Net windows forms 也不是创建独立可执行文件的唯一方法。您可以在 C、C++、VB、Delhpi 等中制作 EXE。唯一的区别是它们不会是 .Net 程序集,但包括 .Net 可执行文件在内的所有程序都将具有一个开始执行的入口点和 EXE 标头将它们标识为主机 Windows 操作系统上的可执行文件。

      【讨论】:

        【解决方案4】:

        为什么它会是一个 DLL?它是一个应用程序——它必须是可启动的,不像一个位于网络服务器“内部”的网站(有效地)。 exe 文件应用程序(当然还有它需要的任何库)。您双击它,它将启动应用程序。没问题。

        话虽如此,您几乎应该忽略obj 目录——它只是一个中间目录。 bin 目录是您应该从中获取构建结果的目录。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-03
          • 2011-09-22
          • 2011-02-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多