.Net Framework 4.0中的SMO程序集

时间:2011-12-16 13:14:17

标签: c# sql-server-2008

我正在使用.net framework 4.0并且正在使用Web部署安装程序,我已经引用了sql server 2008的SMO程序集,当我使用Smo Assemblies在我的设置中调用ExecuteNonQuery函数时它给出了这个错误“混合模式程序集是根据运行时的版本'v2.0.50727'构建,如果没有其他配置信息,则无法在4.0运行时加载。“但有时它在我的代码中正常工作,但有时候会出现这个错误,

我使用相同的类,相同的方法有时它运行正确,有时它给出了这个错误,我完全消失了这个错误,我找不到任何理由,我也想知道是SMO程序集可以在.Net framework v4.0中找到?

4 个答案:

答案 0 :(得分:11)

来自:http://social.msdn.microsoft.com/Forums/en-US/sqlsmoanddmo/thread/533f7044-1109-4b7a-a697-2621f23017d6

这是一个已知问题。 SMO对.Net 4.0的使用尚未由微软签署或宣布。

有一个不受支持的选项可以使其正常工作(将其添加到您的app.config):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

答案 1 :(得分:3)

为什么使用“SMO程序集”来调用ExecuteNonQuery?

为什么不直接引用和使用ADO.NET?见System.Data.SqlClient.ExecuteNonQuery(...)

答案 2 :(得分:1)

现在,在.NET v4中使用SMO的真正答案似乎在于解决方法:

http://connect.microsoft.com/SQLServer/feedback/details/643811/net-4-0-compatible-smo

答案 3 :(得分:0)

我自己遇到过这个问题并添加上述标记(请参阅@jimasp评论)似乎不起作用,但是,我已将其添加到代码所在项目的app.config中,但是,它被用作控制台应用程序的一部分。当我将它添加到控制台的app.config时,它运行没有任何问题。我一直把它添加到错误的app.config。