2013-09-10 133 views
1

我在C#中构建了一个控制台应用程序,并且希望在远程机器上执行此应用程序。在远程机器上执行C#控制台应用程序

该项目的debug文件夹中包含其他几个文件除了HelloWorld.exe的

例如

  • HelloWorld.exe.config
  • HelloWorld.pdb
  • HelloWorld.vshost.exe
  • HelloWorld.vshost.exe.config
  • HelloWorld.vshost.exe.manifest

是否需要将所有这些文件复制到远程机器上的文件夹?我认为pdb文件是一个可以忽略的调试器文件?这两个.config文件完全一样。

回答

7

你列出的文件,你只需要HelloWorld.exe的,也许HelloWorld.exe.config(如果你使用存储在它的配置)。

  • HelloWorld.exe.config - 您的应用程序的XML配置文件。这个文件可能很重要。通过复制和重命名app.config文件来创建文件以构建目标目录。

  • HelloWorld.pdb - 调试符号。它们存储调试应用程序所需的信息,如行号和类似信息。应用程序在没有它们的情况下将正确运行,但它们在部署时不会有问题。例如,如果您的应用程序抛出异常并崩溃,那么如果您有调试符号存在,则堆栈跟踪中的行号将显示。

  • HelloWorld.vshost.exe - 这是使用Visual Studio的临时可执行文件,并临时托管您的应用程序,同时在调试模式

  • HelloWorld.vshost.exe.config - 同第一。配置文件,但对于VS临时可执行文件

  • HelloWorld.vshost.exe.manifest - "Describes and identifies the shared and private side-by-side assemblies that an application should bind to at run time"。你 也不会需要这个,除非你有依赖程序集 ,其中有许多版本安装在.NET搜索位置 (应用程序文件夹,GAC等)。大多数情况下,您可能并不是这种情况 。

6

如果它只是一个控制台应用程序,您所需要的只是可执行文件。但是:

  • 如果您引用未嵌入你需要这些引用的文件

  • 如果你使用的app.config,你还需要在exe.config文件,我会将钱尼古拉和Bar的答案虽然

你是正确的,pdb文件是出于调试目的。

+2

,也许是.exe.config如果你在那里配置了一些东西 – makim

+0

@sine我想这取决于可执行文件中发生了什么。我会补充一点 – tnw

3

如果应用程序需要在app.config中一些铁杆的变量,那么你需要的可执行exe.config,如果不仅.exe文件

相关问题