从 .NET Framework 应用程序检查 .NET 5 程序集的 PublicKeyToken
Checking PublicKeyToken of a .NET 5 assembly from .NET Framework application
在我们的 .NET Framework 应用程序中,我们有一个插件机制,它在执行 PublicKeyToken 之前检查它以验证它是否可信。为此,我们临时将插件加载为程序集以获取 PublicKeyToken。
因为我们想迁移到 .NET 5,所以我们编译了插件,但是现在我们不能再检查 PublicKeyToken,因为我们不能在 .NET Framework 进程中加载 .NET 5 程序集.
有什么方法可以在不加载程序集的情况下检查 PublicKeyToken 吗?
可以通过 P/Invoking mscoree.dll 中的函数检查 PublicKeyToken:
[DllImport("mscoree.dll", CharSet = CharSet.Unicode)]
static extern bool StrongNameTokenFromAssembly(string wszFilePath, out IntPtr ppbStrongNameToken, ref int pcbStrongNameToken);
在我们的 .NET Framework 应用程序中,我们有一个插件机制,它在执行 PublicKeyToken 之前检查它以验证它是否可信。为此,我们临时将插件加载为程序集以获取 PublicKeyToken。
因为我们想迁移到 .NET 5,所以我们编译了插件,但是现在我们不能再检查 PublicKeyToken,因为我们不能在 .NET Framework 进程中加载 .NET 5 程序集. 有什么方法可以在不加载程序集的情况下检查 PublicKeyToken 吗?
可以通过 P/Invoking mscoree.dll 中的函数检查 PublicKeyToken:
[DllImport("mscoree.dll", CharSet = CharSet.Unicode)]
static extern bool StrongNameTokenFromAssembly(string wszFilePath, out IntPtr ppbStrongNameToken, ref int pcbStrongNameToken);