如何检查dll或exe文件是否在C#中有应用程序清单



我正在为一个构建系统编写一些测试,遇到了一个用C#无法真正解决的问题。

如果有应用程序清单,我需要检查多个exe和dll文件。

我见过一些人解决这个问题的方法是,看看用户是否执行了一些具有提升权限的程序,比如这里,还有一些人使用C++来解决这个问题,比如这里。然而,这在我的情况下不起作用,因为我没有执行这些exe和dll文件。

是否有一些简单的方法可以检查exe或dll文件是否附有应用程序清单?

TIA。

我想已经找到了解决这个问题的方法。

请记住,这可能不是最好的解决方案,我相信如果你对这个话题进行更多的研究,你会找到更好的解决方案。

然而,我必须在更短的时间内想出一个,所以这里是我想出的解决方案。

string exeFileData = File.ReadAllText(@"pathfile.exe");
string dllFileData = File.ReadAllText(@"pathfile.dll");
if (exeFileData.Contains("manifestVersion"))
{
Console.WriteLine("Exe contains a manifest");
}
if (dllFileData.Contains("manifestVersion"))
{
Console.WriteLine("Dll contains a manifest");
}

这可能是你能想到的最简单的解决方案。

只需从exe或dll文件中读取所有文本,因为应用程序清单是明文,并且以xml格式包含在exe或.dll文件中,所以我们只需要检查添加的清单中是否包含某些字符串,在我的示例中是manifestVersion属性。

就像我说的,这肯定不是最好的解决方案,但我发现它对我有效

相关内容

最新更新