我正在尝试从另一个调用一个可执行文件。每个可执行文件都由自己的项目编译,两个项目都在同一个解决方案中。我发现了this个问题,但这只是指可执行文件的路径。我正在寻找一种以编程方式检索可执行文件名称的方法。我已经在“项目1”中包含了“项目2”,因此我知道当我运行“项目1”时,“项目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