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

问题描述 投票:0回答:1

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

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

我看到有些人通过查看用户是否执行某些具有提升权限的程序(如here)来解决此问题,而有些人则使用 C++ 解决此问题(如here)。然而,这对我来说不起作用,因为我没有执行这些 exe 和 dll 文件。

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

TIA。

c# dll exe manifest
1个回答
1
投票

我想我已经找到了问题的解决方案。

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

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

string exeFileData = File.ReadAllText(@"path\file.exe");
string dllFileData = File.ReadAllText(@"path\file.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 属性包含在 exe 或 dll 文件中。

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

© www.soinside.com 2019 - 2024. All rights reserved.