C# 通过c中具有相对路径的代码启动应用程序#
有人能给我解释一下如何使用C# 通过c中具有相对路径的代码启动应用程序#,c#,visual-studio,tfsbuild,C#,Visual Studio,Tfsbuild,有人能给我解释一下如何使用 AppDomain.CurrentDomain.BaseDirectory 还是类似的 我想从单元测试内部启动一个web服务。我知道如何像上面那样获得单元测试的相对路径,或者使用系统反射版本,但是我不知道如何使用它导航 单元测试在VisualStudio中的一个单独项目中,与服务相比,它有单独的文件夹,但它们都在同一个解决方案中,因此彼此之间的路径总是相同的,但我不知道如何使用它 Process.Start 所以我可以告诉它启动服务 如果有人知道,请告诉我,或者如
AppDomain.CurrentDomain.BaseDirectory
还是类似的
我想从单元测试内部启动一个web服务。我知道如何像上面那样获得单元测试的相对路径,或者使用系统反射版本,但是我不知道如何使用它导航
单元测试在VisualStudio中的一个单独项目中,与服务相比,它有单独的文件夹,但它们都在同一个解决方案中,因此彼此之间的路径总是相同的,但我不知道如何使用它
Process.Start
所以我可以告诉它启动服务
如果有人知道,请告诉我,或者如果您碰巧知道TFS自动生成中启动web服务的另一种方法。有一个名为“System.Diagnostics.ProcessStartInfo”的对象,它可以帮助您调用外部进程或从.NET应用程序启动应用程序。可以使用某种Path.Combine()方法遍历文件夹,您可以将应用程序所在的同一路径传递给ProcessStartInfo对象的“WorkingDirectory”属性
var processStartInfo = new ProcessStartInfo(string.Format("cmd /c start some service"))
{
WorkingDirectory = ==PathWhereApplicationIs==,
WindowStyle = ProcessWindowStyle.Hidden,
ErrorDialog = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
};
在上面的代码片段中:cmd是命令提示符,/c表示我们正在传递一些参数,其余的可以是您希望执行的任何命令我在搜索时注意到path.combine(),但我不知道如何将其用于我想要的目的。我没有确切的资料。我有我的单元测试的相对路径,我可以找出如何导航文件夹树(例如:进入3个目录,然后进入x文件夹,然后进入y文件夹等)您可以使用目录.GetParent(“某些路径”)三次导航3个目录,然后使用path.Combine(“3directoriesUpPath”,“newFolderName”)要进入最终目录,您需要执行应用程序。哦,就是这样。我想一定有一些命令可以从相对路径中导航。非常感谢。