我正在尝试运行一个应用程序,CoInitializeSecurity在启动时对其进行调用。这在Visual Studio 2013中有效,但在Visual Studio 2017中不适用-我很好奇为什么会这样。
在Visual Studio 2017中启动时调用CoInitializeSecurity时,我收到COMException带有错误代码的错误代码RPC_E_TOO_LATE (0x80010119),该代码指示已对进行调用CoInitialize,这在Visual Studio 2013中不会发生。
在启用Visual Studio托管过程或CoInitializeSecurity调用之前加载使用COM的程序集的情况下,我在Visual Studio 2013中已经看到过此行为。
加载的程序集在Visual Studio 2013和2017之间有所不同(输入App构造函数时会快照),突出显示的差异为:
2013年:
'WPFTestVS2017.exe'(CLR v4.0.30319:DefaultDomain):已加载'C:\ windows \ Microsoft.Net \ assembly \ GAC_64 \ mscorlib \ v4.0_4.0.0.0__b77a5c561934e089 \ mscorlib.dll'。
'WPFTestVS2017.exe'(CLR v4.0.30319:DefaultDomain):已加载'C:\ WPFTestVS2017 \ bin \ Debug \ WPFTestVS2017.exe'。
'WPFTestVS2017.exe'(CLR v4.0.30319:WPFTestVS2017.exe):已加载'C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ PresentationFramework \ v4.0_4.0.0.0__31bf3856ad364e35 \ PresentationFramework.dll'。
'WPFTestVS2017.exe'(CLR v4.0.30319:WPFTestVS2017.exe):已加载'C:\ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ …