我正在尝试自动重新初始化多个复制 从分发服务器匿名提取的订阅。我是 在Powershell开展这个项目,我相信我有一个 64位与.NET复制管理对象的32位问题 (RMO)。我正在加载RMO和复制程序集。 RMO 程序集加载MSIL版本,但仅复制程序集 可在X86或X64中使用。
我遇到的问题是 Microsoft.SqlServer.Replication.TransSynchronizationAgent类不是 我在64位机器上运行脚本时可用。当我运行它时 32位机器它工作正常。
当我尝试在64位机器上创建该类的新对象时,我 得到一个没有注册Class的错误。我看着了 注册表和类已在64位和64位注册到GAC 32位(Wow6432Node)位置。
以前有没有人遇到过这个问题?关于修复的任何想法?
谢谢你, Rickey
答案 0 :(得分:0)
我最近遇到了与Powershell类似的x64 vs x32位问题。它与Windows文件系统重定向有关(更多信息请参见:http://practicaladmin.wordpress.com/2010/07/16/powershell-x64-and-filesystem-redirection/)
如果您尝试在32位内存空间(32位PID或以32位模式/等运行的PID)中实例化64位Powershell实例,Windows会尝试“做正确的事”并执行32位版本的Powershell(在syswow64文件夹 - 是的,32位PowerShell存在于syswow64文件夹中)。
尝试使用以下路径在64位盒子上显式运行64位版本的Powershell.exe:
%windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe