سؤال

لدي برنامج نصي مقره Nant الذي قمت بتشغيله على جهاز الكمبيوتر المحلي الذي يتصل به SQL Server 2008 Express أيضا على جهاز الكمبيوتر المحلي الخاص بي لإسقاط وقواعد البيانات الخاصة بي باستخدام ملفات .sql - هذا يعمل بشكل جيد، لا مشكلة هنا.

المشكلة تأتي عندما قمت بإعادة إنشاء نفس الإعداد على جهاز كمبيوتر آخر، أحصل على الخطأ في نصي nant يقول أن:

System.InvalidOperationException: The 'SQLNCLI' provider is not registered on the local machine.
  at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
  at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
  at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
  at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
  at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
  at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
  at System.Data.OleDb.OleDbConnection.Open()
  at NAnt.Contrib.Util.SqlHelper..ctor(String connectionString, Boolean useTransaction)
  at NAnt.Contrib.Tasks.SqlTask.ExecuteTask()
  at NAnt.Core.Task.Execute()
  at NAnt.Core.Target.Execute()
  at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)
  at NAnt.Core.Project.Execute()
  at NAnt.Core.Project.Run()

لقد بحثت عبر الإنترنت ووجدت أنه في منتدى اقترح أنه كنت بحاجة إلى تثبيت عميل Microsoft SQL Server الأصلي، و حصلت عليه من عنوان URL هذا. وبعد (من المسلم به، لقد قمت فقط بتثبيت جزء العميل الأصلي من هذا)

على الرغم من تثبيت هذا على جهاز الكمبيوتر الثاني، لا يزال البرنامج النصي يعطيني نفس الخطأ. أي اقتراحات؟

هل كانت مفيدة؟

المحلول

المزود الصحيح ل SQL Server 2008 هو SQLNCLI10.1.
ل SQL Server 2012، سيكون ذلك SQLNCLI11. (مصدر)

للأسف، لم تلتقط الهجرة إلى عام 2008 التغيير ...

نصائح أخرى

هل يمكن أن تكون مشكلة مع x86 / x64؟ إذا كانت محطة العمل المعنية هي X64، وقمت بتثبيت إصدار X64 من العميل، ولكن التطبيق الذي تحاول تشغيله هو في مساحة X86، فقد تحتاج إلى إصدار X86 من العميل في محطة العمل هذه أيضا. سيقوم تطبيق X86 بالتحقق فقط من إصدار X86 من المزود، ورؤية لا شيء، سيعطي خطأ مثل هذا واحد. من المحتمل أن يكون إصدار X64 ذكيا بدرجة كافية للتحقق من الإصدارين، على الرغم من أنه ربما يكون لديك نفس الموقف.

يحدث هذا الشيء نفسه مع مصادر البيانات ODBC - X86 و X64 غير متوفرة للنوع الآخر من التطبيق - إذا كنت تريد أن تكون شيئا مرئيا من كلا من إنشاء التطبيقات، فستحتاج إلى إنشاء مصدر ODBC في كل أداة مسؤول الإصدار وبعد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top