根据你提供的信息,看起来是在使用 System.Runtime.InteropServices.Marshal.GetActiveObject 方法时出现了错误。这个方法用于从运行中的 COM 组件中获取指定名称的对象实例。在你的情况下,你正在尝试获取名为 "Word.Application" 的 Word 应用程序实例。
出现的错误信息中提到了 System.StubHelpers.InterfaceMarshaler.ConvertToManaged,这表明可能在进行 COM 互操作时发生了问题,可能是由于转换接口时出现了错误。
有几个可能的原因导致此错误:
1. Word 应用程序未运行:确保在运行代码时,系统中已经有一个 Word 实例正在运行。如果没有运行 Word,GetActiveObject 将无法获取到任何实例,从而导致错误。
2. 权限问题:可能是由于权限不足,导致无法从其他进程中获取活动的 COM 对象。尝试以管理员身份运行代码,或者确认当前用户是否具有足够的权限。
3. COM 注册问题:在某些情况下,COM 对象可能没有正确注册,或者注册了但存在问题。这可能需要检查 Windows 注册表中的相关条目,或者尝试重新注册 Word。
4. 系统环境问题:某些系统配置可能会导致 COM 互操作出现问题。这可能需要检查系统的安全设置、权限设置等。
在处理这种情况时,建议先尝试捕获异常并输出更详细的错误信息,以便更好地理解问题所在。另外,可以尝试使用其他方法获取 Word 应用程序实例,例如使用 new Word.Application() 创建新实例。
有些电脑很诡异明明安装的是2019却显示365这种情况使用微软的卸载工具彻底卸载就可以避免这个问题。
https://outlookdiagnostics.azureedge.net/sarasetup/SetupProd_OffScrub.exe