在 PowerShell 中,我使用以下代码加载两个程序集
#sql server 2012 assembly
add-type -assembly "microsoft.sqlserver.smo, version=11.0.0.0, culture=neutral, publickeytoken=89845dcd8080cc91";
#sql server 2017 assembly
add-type -assembly "microsoft.sqlserver.smo, version=14.0.0.0, culture=neutral, publickeytoken=89845dcd8080cc91";
我可以看到两个程序集都已成功加载
[AppDomain]::CurrentDomain.GetAssemblies() | where location -like "C:\WINDOWS\assembly\GAC_MSIL\microsoft.sqlserver.smo*"
现在如果我有以下代码
$svr = new-object "microsoft.sqlserver.management.smo.server" 'localhost';
此 $svr 来自 SQL Server 2012 程序集(版本 11.0.0.0)还是来自 SQL Server 2017 程序集(版本 14.0.0.0)?
最佳答案
将从您加载的第一个程序集加载该类型。要查看类型的程序集,您可以使用以下代码:
$svr.GetType().Assembly.FullName
如果您想查看差异,可以在新的 PowerShell session 中测试不同的顺序。
关于.net - 如何判断 new-object 来自哪个版本的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47707197/