2009-06-28 162 views

回答

5

你能做的最好的是在任何你希望的属性页面(属性在Solution Explorer节点)设置装配名。 C#编译器自动使用程序集名称作为进程名称(生成的EXE的文件名),所以这应该为您完成这项工作。请注意,程序集名称与项目名称和根名称空间完全无关。

当然,您可以在EXE生成后更改文件名(这会使程序集名称不变为),尽管我没有看到真正的原因。

注意:我假设你特指Visual Studio,尽管它可能没什么关系。

21

您可以在项目的属性页面中设置它。在应用程序选项卡上设置程序集名称将设置生成的编译程序集的名称(即ABC.exe)。

.vshost.exe是您在调试时由Visual Studio使用的Visual Studio debugging process。您可以通过取消选中项目属性的调试选项卡上的“启用Visual Studio宿主进程”复选框来关闭该功能(Visual Studio不需要它进行调试)。

+0

嗨阿德里安, 我还有一个问题。如果我们手动更改可执行文件的名称,则进程名称也会更改。有没有办法永久设置进程名称? – 2010-01-11 16:31:20

+3

我不这么认为。进程名称是正在运行的可执行文件的名称。我唯一能想到的就是在启动时进行检查,检查当前exe的名称,如果它不是预期的名称,它将不会运行 - 确保您的进程被正确命名(尽管是一个可怕的和不友好的解决方案)。 – adrianbanks 2010-01-11 17:57:08

0

任务管理器中的进程名称是基于映像名称的,这是可执行文件(正如已经指出的,程序集名称设置在VS.Net中定义了这一点)。

应用程序名称是基于窗口标题的,所以只能用图形应用程序进行更改(除非通过不太可能稳定的肮脏黑客控制台)。

请注意,您可以有多个可执行文件在共享dll中执行共同的主要方法,因此如果有帮助,您可以“不同地命名”实质上相同代码的不同实例。

1

它似乎取自一个.EXE的版本信息资源;特别是“FileDescription”属性。要以编程方式执行此操作,我想您需要一个单独的程序来更新.EXE中的version-info资源,该资源的描述您要更改。 (我不知道C#,但在C++中,UpdateResource用于此目的。)

4

单独更改“程序集名称”并不能帮助我。在AssemblyInfo.cs文件中更改程序集标题帮助我更改了进程名称。

相关问题