将程序集另存为适用于Assembly.Load的字节数组

本文关键字:字节 字节数 数组 Load Assembly 程序集 另存为 适用于 | 更新日期: 2023-09-27 17:58:39

我注意到Assembly.LoadFrom具有以下过载

public static Assembly Load(
    byte[] rawAssembly
)

如何将程序集保存为字节数组,以便像这样创建它?

上下文:我想编写一个测试工具,确保服务的向后兼容性。我想将客户端的罐装版本加载到我的工具中,并从许多不同的版本调用该服务。我认为将旧版本保存为byte[]可以冻结它们。

将程序集另存为适用于Assembly.Load的字节数组

如果你有旧版本作为文件(就像它们通常构建的那样),那就是你所需要的。如果需要,您可以将它们读取到字节数组中(例如使用File.ReadAllBytes)。

听起来您只需要将旧的二进制文件保留在源代码管理中。

如此:

byte[] assemblyBytes = File.ReadAllByes(assemblyPath);

请注意,您必须首先加载依赖程序集。