我正在编写一个类,该类将使用.NET 4.5和Visual Studio 2012为多个其他项目启动和管理流程。我已经创建了一个包含两个项目的解决方案:流程可执行文件和流程发射器/经理。这使两者密切相关,并允许多个外部项目通过在各自的解决方案中引用管理器来使用流程管理器。
流程可执行文件和管理器的项目结构如下所示:
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessAndManager\ProcessAndManager.sln
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessAndManager\Process\Process.csproj
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessAndManager\Manager\Manager.csproj
现在我已切换到硬币的另一面,我有一个外部项目,希望引用管理员以使用管理器解雇这些流程。
分别找到新的解决方案和项目
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessPlayground\ProcessPlayground.sln
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessPlayground\ProcessPlayground\ProcessPlayground.csproj
在ProcessPlayground.sln中,我已经包含了对如上所述的Manager.csproj的引用。
现在我从新的外部项目中使用管理器,我发现管理器没有到进程.exe文件的正确路径。这是因为在管理器类中我使用此行来设置Process.exe的位置
this.executableLocation = Environment.CurrentDirectory + "\\Process.exe";
在原始解决方案中完成后,这将指向可以找到Process.exe的项目箱:
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessAndManager\Process\bin\Debug
但现在从ProcessPlayground解决方案运行时,此值指向
C:\Users\Me\Documents\Visual Studio 2012\Projects\ProcessPlayground\ProcessPlayground\bin\debug
找到Process.exe
。所以,我需要一种方法从内部引用Manager.csproj文件的源位置(或者它的解决方案,我可以使用相对路径),而不是当前的执行位置。这将使部署到任何机器。
非常感谢所有帮助,提前谢谢!