src/programFrames/DllExportPack.cs

using System;
using System.IO;
using System.IO.Compression;
using System.Reflection;
 
/*__ASSEMBLY_ATTRIBUTES__*/
namespace PSRunnerNS {
    // 压缩版原生 DLL 导出的 launcher(见 src/DllExportCompiler.ps1 与 docs/dev/compiler-internals.md#dllexport)。
    // 内嵌 gzip(payload) 作为 "main" 资源:静态构造在任何导出方法执行前由 CLR 保证只跑一次,此时在内存里解压并
    // Assembly.Load 出真正的实现程序集,再挂 AssemblyResolve 让下面生成的转发包装直接静态调用它。
    // 因此每个导出调用没有任何额外检查/加锁,只有一次 native→managed 跳转。
    public static class PS12ExeDllPack {
        static PS12ExeDllPack() {
            Assembly payload;
            using (Stream stream = typeof(PS12ExeDllPack).Assembly.GetManifestResourceStream("main"))
            using (Stream decompressed = new GZipStream(stream, CompressionMode.Decompress))
            using (MemoryStream buffer = new MemoryStream()) {
                decompressed.CopyTo(buffer);
                payload = Assembly.Load(buffer.ToArray());
            }
            string payloadName = payload.GetName().Name;
            AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender, ResolveEventArgs e) {
                return (e.Name == payloadName || e.Name.StartsWith(payloadName + ",", StringComparison.OrdinalIgnoreCase)) ? payload : null;
            };
        }
        /*__PS12EXE_DLL_EXPORTS__*/
    }
}