Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过c中具有相对路径的代码启动应用程序#_C#_Visual Studio_Tfsbuild - Fatal编程技术网

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”)要进入最终目录,您需要执行应用程序。哦,就是这样。我想一定有一些命令可以从相对路径中导航。非常感谢。