无法加载文件或程序集' Microsoft.SqlServer.BatchParserClien.dll文件名

时间:2017-10-16 20:55:05

标签: c# sql-server visual-studio-2017 smo

我有一个疯狂的问题,SMO操作失败,唯一的区别是我的bin文件夹中的这个奇怪的文件:

  

无法加载文件或程序集   ' Microsoft.SqlServer.BatchParserClien.dll

注意:这不是拼写错误,也就是文件系统中文件的实际名称。

我不知道该怎么做,我以前在bin文件夹中从未见过这样的东西。

我正在做的操作是:

var distributor = new ReplicationServer(conn);
                    if (!distributor.DistributorInstalled)
                    {
                        distributor.InstallDistributor((string)null, distributionDb);
                    }

我正在使用版本为140.17177.0的Microsoft.SqlServer.SqlManagementObjects nuget包。

异常中的融合日志是:

  

===预绑定状态信息===日志:DisplayName = Microsoft.SqlServer.BatchParser,Version = 14.100.0.0,Culture = neutral,   PublicKeyToken = 89845dcd8080cc91(完全指定)LOG:Appbase =   文件:/// C:/ TFS /后退   Office / Persistence / ReplicationManagement / Worker / bin / Debug / LOG:   Initial PrivatePath = NULL调用程序集:   Microsoft.SqlServer.BatchParserClient,Version = 14.100.0.0,   Culture = neutral,PublicKeyToken = 89845dcd8080cc91。   ===日志:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:C:\ tfs \ Back   办公室\持久性\ ReplicationManagement \工\ BIN \调试\ Worker.exe.Config   日志:使用主机配置文件:日志:使用机器配置   来自的文件   C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config中。   日志:后策略引用:Microsoft.SqlServer.BatchParser,   Version = 14.100.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91   日志:尝试下载新的URL文件:/// C:/ tfs / Back   办公室/持续性/ ReplicationManagement /工人/斌/调试/ Microsoft.SqlServer.BatchParser.DLL。   错误:无法完成程序集的设置(hr = 0x8007000b)。探测   终止。

BatchParser文件确实存在于指定了相同版本的bin中。我有一个项目可以工作,唯一的区别是输出中的文件名。

3 个答案:

答案 0 :(得分:5)

我有类似的问题。我有一个使用Microsoft.SqlServer.SqlManagementObjects nuget包的SMO应用程序。

应用程序全部在我的p.c上运行完美但是当它部署并在我们的应用服务器上运行时,我收到了错误。

无法加载文件或程序集“Microsoft.SqlServer.BatchParser.dll”或其依赖项之一。找不到指定的模块。

要解决此问题,我需要再次针对x86平台构建项目。 然后我还必须安装相应的x86 C++ Redistributable Package

答案 1 :(得分:1)

对于Visual Studio 2017,请下载此nuget程序包

Open PM Console and paste below line

Install-Package Microsoft.SqlServer.SqlManagementObjects -Version 140.17283.0

More Information about latest builds

答案 2 :(得分:0)

我遇到了类似的问题,我不得不将我的平台目标设置为“任意CPU” ,并且检查“首选32位”。