如何验证 .NET 自包含的单个文件可执行文件?

How can I verify a .NET self-contained single file executable?

我正在为为 .NET 运行时编写的客户端发布一个 C# 应用程序,作为单个文件发布,即我正在使用 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true 对于 dotnet publish 命令

没有修剪,不包括运行时间。

该应用程序有多个托管和非托管依赖项。

该应用程序使用 NUnit(在发布模式下)进行了广泛的单元测试。但是,客户问我如何确定部署的可执行文件是 'the same as' 测试中的已编译产品。 (单元测试环境和生产环境的区别暂且不谈。)

我可以验证提取到文件系统 ($HOME/.net) 的本机库与捆绑之前的库相同。但是托管代码呢?是否可以检查单文件可执行文件并验证捆绑应用程序是否由相同的单元测试产品 (DLL) 组成?

SingleFileExtractor 是使用 single-file .NET 应用程序的有用工具。您可以使用它从 exe 中提取 DLL,然后将它们与在发布模式下测试时编译的 DLL 进行比较。