修改生成的执行程序集路径c#
本文关键字:程序集 路径 执行程序 执行 修改 | 更新日期: 2023-09-27 18:14:27
我在字符串中得到我的执行程序集路径,我不想要整个路径,我需要使用它的一部分,需要从该路径访问它的另一个文件夹。
假设我需要从文件夹
中获取一个xml文件 " E:'Mahi_WorkSpace'TFS 'Atrias.WebAutomationTesting'XmlFolder"
我的执行程序集路径是
" E:'Mahi_WorkSpace'TFS 'Atrias.WebAutomationTesting'TestResults't.mahidharreddy_123 2016-10-24 07_39_26'Out"
现在我只需要从执行汇编字符串
中获取"E:'Mahi_WorkSpace'TFS 'Atrias.WebAutomationTesting' "
public string GetStringBody()
{
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
string path=Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
//srting xmlpath=??
return xmlpath;
}
试试这个
string path = Path.GetDirectoryName(Path.GetDirectoryName(TestContext.TestRunDirectory));
这将给你Atrias.WebAutomationTesting
创建的TestResults
文件夹的父目录,我相信,这就是你正在寻找的。
参考:MSDN: TestContext。TestRunDirectory地产
这只是另一个可能的解决方案:
public string GetStringBody() {
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var di = new DirectoryInfo(path);
return di.Parent.Parent.Parent.FullName; // here you should define how many level you want to up
}
您可以遍历父目录,直到到达目标节点。
var currentDirectoryPath = AppDomain.CurrentDomain.BaseDirectory;
var parentDirectory = System.IO.Directory.GetParent(currentDirectoryPath);
while (!string.Equals(parentDirectory.Name, "Atrias.WebAutomationTesting", StringComparison.CurrentCultureIgnoreCase))
{
parentDirectory = parentDirectory.Parent;
if (parentDirectory == null)
break;
}
if (parentDirectory != null)
{
var targetDirectory = parentDirectory.FullName + "''Test";
MessageBox.Show(targetDirectory);
}