如何从解决方案中的另一个项目获取可执行文件的名称?

时间:2011-09-27 19:40:14

标签: .net projects-and-solutions

我正在尝试从另一个调用一个可执行文件。每个可执行文件都由自己的项目编译,两个项目都在同一个解决方案中。我发现了this个问题,但这只是指可执行文件的路径。我正在寻找一种以编程方式检索可执行文件名称的方法。我已经在“项目1”中包含了“项目2”,因此我知道当我运行“项目1”时,“项目2”中的可执行文件将存在,因此位置不是问题;只有可执行文件的名称。有谁知道是否/如何做到这一点?

感谢。

2 个答案:

答案 0 :(得分:2)

在运行时,不再有任何解决方案和项目以及Visual Studio和东西的概念。在运行时,您有一个文件系统,文件,内部文件夹,可执行文件。因此,例如,如果c:\foo\bin\Debug\foo.exe中的可执行文件试图读取c:\bar\bin\Debug\bar.txt中的文件,则必须指定此文件的绝对路径。不要考虑Visual Studio项目。考虑一旦将可执行文件发送到目标计算机后如何组织它们。你基本上有两种可能性:

  • 使用绝对路径引用文件(c:\bar\bin\Debug\bar.txt
  • 使用相对路径(与可执行文件的当前路径相关)来引用文件(..\..\..\bar\bin\Debug\bar.txt

答案 1 :(得分:0)

对于一些额外的引用,项目通常会产生一个可执行文件(.exe)或程序集(* .dll),它通常位于该项目的bin \ Debug文件夹中。该名称来自项目属性中“应用程序”选项卡下的程序集名称(至少在VS2010中)。无法直接启动的项目将产生* .dll文件,控制台或winforms应用程序应该产生和* .exe。

至于以编程方式查找程序集名称,这可能会有所帮助: System.Reflection.AssemblyName.Name property

这也可能有用: How to get the assembly (System.Reflection.Assembly) for a given type in .Net