【发布时间】:2011-01-16 16:13:42
【问题描述】:
总的来说,我对 COM 和 Windows 编程/脚本非常陌生。我试图做的是编写 Windows Live Writer 脚本;根据文档,我才能打电话
$o = New-Object -c WindowsLiveWriter.Application
我需要先加载TLB,所以我应该调用add-type命令,不幸的是它失败了:
PS C:\Users\NoWhereMan> add-type windowslivewriter.application
Add-Type : c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : A namespace does not directly contain members such
as fields or methods
c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : >>> windowslivewriter.application
At line:1 char:9
+ add-type <<<< windowslivewriter.application
+ CategoryInfo : InvalidData: (c:\Users\NoWher...elds or methods:CompilerError) [Add-Type], Exception
+ FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand
Add-Type : Cannot add type. There were compilation errors.
At line:1 char:9
+ add-type <<<< windowslivewriter.application
+ CategoryInfo : InvalidData: (:) [Add-Type], InvalidOperationException
+ FullyQualifiedErrorId : COMPILER_ERRORS,Microsoft.PowerShell.Commands.AddTypeCommand
不管怎样,我运行的是 Windows7 x64
编辑:x64 是关键问题,我需要将 PSH 作为 x86 进程运行
谢谢
【问题讨论】:
-
您不需要对 COM 对象使用 add-type,它应该从对象 IDispatch 接口推断成员。 AFAIK add-type 仅用于添加新的 .NET 程序集。
-
正如我对 Richard 评论的那样,我被从 new-object 得到的错误误导了,该错误实际上是因为我使用的是 64 位 PSH 进程而引发的。谢谢!
标签: windows com powershell windows-live-writer