我正在做一个使用smo对象(服务器,数据库)的C#项目。我包括
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Server;
我添加了Microsoft.SqlServer.Management.Smo,Microsoft.SqlServer.Management.SmoExtended,Microsoft.SqlServer.SqlEnum,Microsoft.SqlServer.ConnectionInfo。
但是我仍然收到这样的错误(类似于10的错误):
The type 'Microsoft.SqlServer.Management.Sdk.Sfc.ISfcHasConnection' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'.
如何解决这个问题?
嗯,我认为该错误是相当可解释的,包括对Microsoft.SqlServer.Management.Sdk.Sfc
的引用。您尚未列出您添加了该参考的信息。有时,当您添加使用未包括的其他dll引用的引用时,则您必须包括那些其他引用...即使您没有使用它们。
我不知道您的问题是否仍然发生,但就我而言,问题是App.Config中的程序集绑定重定向:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Management.Sdk.Sfc" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.100.0.0" newVersion="15.100.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.ConnectionInfo" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.100.0.0" newVersion="15.100.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Diagnostics.STrace" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.100.0.0" newVersion="15.100.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Smo" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.100.0.0" newVersion="15.100.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
我不确切知道Visual Studio何时将其放在这里,但是当我删除它时,它可以工作。
=)