Tag: fileversioninfo

如何获取C#控制台应用程序的.exe名称?

我正在调试VS2008中的C#控制台模式应用程序“xiixtasks.exe”。 我正在尝试从xiixtasks.exe获取版本信息。 当我尝试“Process.GetCurrentProcess()”时,它为我提供了vshost.exe的文件名和版本信息,而不是xiixtasks.exe: // WRONG: this gives me xiixtasks.vhost.exe, version 9.0.30729.1 // I *want* “xiixtasks.exe”, version 1.0.0.1024 System.Diagnostics.FileVersionInfo fi = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileVersionInfo; 我应该做什么呢? 先感谢您! ================================================== ==== 解: 1)最初的问题确实是IDE的“vshost”包装器。 一种解决方法是更改​​构建设置。 2)Assembly.GetExecutingAssembly()。CodeBase是一个很好的解决方案 – 谢谢! 它适用于调试器内部和外部。 3)不幸的是,当我尝试用一​​个预期正常文件路径的函数调用它(而不是像GetExecutingAssembly()“给你”这样的URI)时,它死于“不支持Uri格式”exception。 4)最终解决方案:调用GetExecutingAssembly(),然后调用Uri.LocalPath(): … else if (cmdArgs.cmd.Equals(CmdOptions.CMD_SHOW_VERSION)) { string codeBaseUri = Urifile.System.Reflection.Assembly.GetExecutingAssembly().CodeBase; string codeBase = new Uri (codeBaseUri).LocalPath; string sVersion = Util.GetWindowsVersion(codeBase); System.Console.WriteLine (“version({0}): […]