2013-07-16 74 views
3

我在Win7/64bit上使用powershell 3。 我试图使用.net的Excel(32位)与此命令: [microsoft.office.interop.excel.xlfileformat] 而我得到这个错误: 无法找到类型microsoft.office.interop.excel.xlfileformat :确保包含此类型的程序集已加载。 当我使用Win7/32bit之前,我没有这个错误。 也许有人知道如何解决这个问题?在64位环境中使用32位COM对象

回答

7

你需要加载的Excel互操作程序集,如下所示:

Add-Type -AssemblyName Microsoft.Office.Interop.Excel 

如果您需要使用Excel的互操作程序集定义类型,你必须是集加载到PowerShell中,然后才能引用定义的类型它。您正在使用枚举(xlFileFormat),因此PowerShell需要该类型的定义。

+0

那么,我的办公室是32位和mt环境是64位之间没有任何关系? – Doron

+0

否,因为COM服务器(Excel)耗尽进程。 –

+0

好的谢谢你的帮助。 – Doron

0

尝试在PowerShell 64 bit中运行Redemption.dll代替Outlook 2010 32 bit时遇到了一些类似问题。这是我如何解决它:

regsvr32.exe 'C:\path\Redemption.dll' 
regsvr32.exe 'C:\path\Redemption64.dll' 

$Job = Start-Job -ScriptBlock { 
    $routlook = New-Object -COM Redemption.RDOSession 
    $routlook 
    } -RunAs32 

Wait-Job -Job $Job 
Receive-Job -Job $Job 

显然Start-Job有一个开关运行ScriptBlock32 bit模式。这对我所需要的非常有用!

相关问题