我需要提前调用gacutil从GAC卸载一些二进制文件。
为了能够使用cmd中的gacutil命令,我必须将gacutil路径添加到path变量。但是现在我正在尝试从代码运行gacutil,我需要动态解析gacutil的路径才能启动进程。但是我还找不到解决gacutil路径的方法。有吗?
我确实尝试过按照this answer中的建议扩展path环境变量,但是由于PATH变量上有多个目录(用分号分隔),所以没有简单的方法来解析gacutil路径。
但很明显,当我在cmd中输入gacutil时,它会以某种方式解析path搜索PATH变量中所有可用目录的问题。我如何从代码中实现这一点呢?
发布于 2016-07-01 19:09:28
如果在path环境变量中指定了PATH,则不需要知道路径:
Process p = new Process();
p.StartInfo.FileName = "gacutil";
p.Start();
//it automatically resolves path basin on PATH environment variable..。
发布于 2016-07-01 19:12:34
使用此命令,使用Process.Start启动它并读取输出:
WHERE gacutil发布于 2016-07-01 19:31:53
当然,如果它在路径中,你不需要像@nopeflow回答的那样搜索它。但是,如果您真的想要获取PATH环境变量中任何文件的路径,您可以这样做:
string[] PathDirs = Environment.GetEnvironmentVariable("PATH").Split(';');
string GACdir="";
foreach (string path in PathDirs)
{
if (File.Exists(Path.Combine(path,"gacutil.exe")))
{
GACdir=path;
}
}https://stackoverflow.com/questions/38143778
复制相似问题