2009-02-11 33 views
12

Tamam eksik şikayet ... Ben web, BOL, çeşitli forumlar dolaştılar ettik ve ben umarım ince millet bize yardım edebilirsin ... bir cevap için hiçbir yakınımSQL Server SMO DLL

Bir ağda bir düzine kadar SQL Sunucumuz (bazı 2k, bazı 2005) var. Bazı standart bilgileri almak için bir .NET uygulamasında SMO nesneleri kullanıyorum. Benim sorunum eksik bir DLL - Microsoft.SqlServer.BatchParser.dll aşağı kaynatılıyor gibi görünüyor. Ancak, bu DLL diğer SQL DLL'leri (Microsoft.SqlServer.ConnectionInfo.dll, Microsoft.SqlServer.Smo.dll, Microsoft.SqlServer.SmoEnum.dll, Microsoft.SqlServer.SqlEnum.dll, vb ...) ile gelmedi . Ayrıca SS2005 özellik paketini Microsoft'un SMO nesnelerini içeren sitesinden indirdim, ancak yine de şansım yok.

Aşağıdaki kod Şu anda yorumlandığını hattı, yorumsuz sürece bu durumda aşağıda hatayı alıyorum, çalışır:

protected void btnArchive_Click(object sender, EventArgs e) 
{ 
    ServerConnection conn = new ServerConnection("my_server"); 

    conn.LoginSecure = false; 
    conn.Login = "my_login"; 
    conn.Password = "my_password"; 

    Server s = new Server(conn); 
    Database d = s.Databases["my_database"]; 
    //Table tbl = d.Tables["my_table"]; 

    Response.Write(s.Name + " " + s.Information.RootDirectory + " " + d.CreateDate.ToShortDateString()); 
    conn.Disconnect(); 
} 

Hata: dosya veya derleme yüklenemedi 'Microsoft.SqlServer.BatchParser , Version = 9.0.242.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91 'veya bağımlılıklarından biri. Sistem belirtilen dosyayı bulamıyor.

Not, aynı davranışı VB.NET kullanarak SSIS'den de denedim.

Herhangi bir düşünce takdir edilecektir.

Teşekkürler.

cevap

0

Sadece sorunu doğru şekilde anlıyoruz, Microsoft.SqlServer.BatchParser.dll geliştirme makinenizdeki Genel Kurulum Önbelleği'nde yüklü değil mi? Öyleyse, bu sorunu çözüp çözmediğini görmek için .NET Framework'ü (hedeflediğiniz Çerçevenin sürümü) yeniden yüklemeyle başlamak isteyebilirsiniz.

Ayrıca, derlemenin gerçekten Genel Montaj Önbelleği'nde (GAC) bulunup bulunmadığını görmek için .NET Framework Yapılandırma aracını kullanmayı da deneyebilirsiniz. Bu MSDN Article, bu aracın nasıl kullanılacağını açıklar.

(.NET Framework Yapılandırma aracını kullanarak görebiliyor olsam bile, Microsoft.SqlServer.BatchParser.dll derlememde bir sabit disk sürücümü araması yapmadı).

+0

teşekkürler. Yine de, Genel Montaj Önbelleği'nin nerede olduğunu bilmiyorum, tüm sürücüyü aradım ve bu dll mevcut değil. Ayrıca en yeni çerçeveyi (3.5 SP1) yeniden kurdum. –

+0

GAC genellikle% windir% \ assembly – kristianp

6

Kutunuzda bir x64 işletim sistemi mi çalıştırıyorsunuz? 64-bit ortamlarda BatchParser.dll ile ilgili sorunlar var gibi görünüyor - genellikle Microsoft'tan gelen SMO x64 Package (SQLServer2005_XMO_x64.msi) indirmek için tavsiye edilir.

Bu here hakkında bilgileri görün.

9

"Microsoft.SqlServer.ConnectionInfo", "Microsoft.SqlServer.Management.Sdk.Sfc" ve "Microsoft.SqlServer.Smo" derlemelerinin 10. * sürümlerini kullanarak kodunuzu başarıyla çalıştırabildim. 2008 version of the SMO components'u indirmeyi deneyin, belki de düzeltmeleri gereken bir hataydı.

+3

içeriyor. Bunu takiben benim için çalıştı. Bununla birlikte, uygulama havuzumun 32 bit modu etkinken çalışmamdan dolayı 32 bitlik sürümü kullanmam gerektiğini ekleyeceğim. Sorunu çözmek için sonsuza kadar sürdü, bu yüzden umarım bu başka birine yardımcı olur. – esteuart

+1

@esteuart, bunun kendi cevabı olması gerekiyor! saat sonra bu nihayet beni kurtardı (v için 12.0.0.0) – SumGuy

0

2005 veya 2008 yükseltme danışmanının bir parçası olarak gelir.

3

Sen, ben

Microsoft SQL Server 2005 Yönetim Nesneleri Koleksiyonu Yönetimi Koleksiyon paketi Nesneleri ... çok herkes için çalışabilir umut bu paket ile iki kez bu sorunu çözmüş sorunu çözmek için paket aşağıdaki yüklemeniz gerekir Analiz Yönetim Nesneleri (AMO), Çoğaltma Yönetimi Nesneleri (RMO) ve SQL Server Yönetim Nesneleri (SMO) dahil olmak üzere SQL Server 2005 yönetim API'sinin birkaç temel öğesini içerir.Microsoft sitesinden

http://www.microsoft.com/en-us/download/details.aspx?id=11988

den Aralık 2008 Fakat indirme sayfası değişikliklerinin bağlantı konumu - Geliştiriciler ve DBA Microsoft SQL Server için Feature Pack 2005 alabilirsiniz programlı olarak SQL Server 2005'i

yönetmek için bu bileşenleri kullanabilirsiniz Kaynak bulamazsanız her zaman blogumdan da indirebilirsiniz.

Ben de ben çok geç burada partiye biliyorum http://rndp-android.blogspot.com/p/missing-microsoftsqlservermanagementsdk.html

4

istiyorsanız blogumda bu konuda bazı ipuçları ve kaynaklar sağladı, ancak google bu "hala smo BatchParser ilk sonucudur ".

SMO 2014'ü (12.0.x) yüklerken bazı DLL'ler yalnızca GAC'ye yüklenir. Uygulamanızı SMO'yu hedef sunucuya manuel olarak yüklemek zorunda kalmadan çalışmak için, bu DLL'leri uygulamanızla birlikte kopyalamanız gerekir. İşte onları aldığım yollar.

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.Smo.dll

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.SmoExtended.dll

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.SqlEnum.dll

C:\Windows\assembly\GAC_64\Microsoft.SqlServer.BatchParser\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.BatchParser.dll

C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.BatchParserClient\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.BatchParserClient.dll

C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlClrProvider\12.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.SqlClrProvider.dll

Eğer this article tarafından sağlanan talimatları kullanarak pencereleri yerleşik izleyicide devre dışı bırakmanız gerekir GAC dosyalarına bakın.

kolaylık yazının bir alıntı: cevap için

Open the registry editor and add/set the HKLM\Software\Microsoft\Fusion\DisableCacheViewer DWORD value: 1

+0

BatchParser dll sonuçta bu hatayı neden olur: "Düzeltmeleri düzeltilemeyen bir yürütülebilir dosya (IAT ile 2'den fazla bölüm veya bir TLS bölümü.) yüklemeyi deneyin. HRESULT: 0x80131019". – Jerther

+0

Saatler daha sonra: herhangi bir işlemci ile yapılan uygulamadan kaynaklanabilir, ancak "Tercih et 32 ​​bit" etkinleştirilmiş. – Jerther