2012-04-13 2 views
0

Nachdem ich .NET Assemblies in SQL Server 2005 erstellt habe, muss ich irgendetwas tun, wenn .NET Service Packs/Bugfixes von MS veröffentlicht und dann über die üblichen Microsoft Updates installiert werden? Ist die SQL-Assembly eine Verknüpfung zu der ursprünglichen .NET-DLL oder nimmt SQL Server eine eigene private Kopie an?Aktualisieren von .NET Assemblys bereits in SQL Server

Antwort

1

Nachdem ich .NET-Assemblys in SQL Server 2005 erstellt habe, muss ich irgendetwas tun, wenn .NET Service Packs/Bugfixes von MS veröffentlicht und dann über die üblichen Microsoft Updates installiert werden?

Kommt drauf an. Die SQL Server CLR-Integration unterstützt nicht jede .NET-Assembly, siehe Support policy for untested .NET Framework assemblies in the SQL Server CLR-hosted environment. Wenn Sie sich auf unterstützte Assemblies beschränken (unten), müssen Sie nichts tun.

  • Microsoft.VisualBasic.dll
  • Mscorlib.dll
  • System.Data.dll
  • System.dll
  • System.Xml.dll
  • Microsoft.VisualC.dll
  • CustomMarshalers.dll
  • System.Security.dll
  • System.Web.Services.dll
  • System.Data.SqlXml.dll
  • System.Transactions.dll
  • System.Data.OracleClient.dll
  • System.Configuration.dll

wenn Sie jedoch eine ungetestete Assembly verweisen kann eine Fehlermeldung angezeigt, weil

wenn die CLR eine Assembly lädt, überprüft die CLR, dass die gleiche Montage i n der GAC. Wenn sich dieselbe Baugruppe im GAC befindet, überprüft die CLR , ob die Modulversions-IDs (MVIDs) dieser Baugruppen übereinstimmen. Wenn die MVIDs dieser Assemblys nicht übereinstimmen, erhalten Sie die Fehlermeldung, die der Abschnitt "Problembeschreibung" erwähnt.

Wenn eine Assembly neu kompiliert wird, ändert sich die MVID der Assembly. Wenn Sie das .NET Framework aktualisieren, wird daher die.NET Framework Assemblys haben unterschiedliche MVIDs, da diese Assemblies neu kompiliert werden. Wenn Sie Ihre eigene Assembly aktualisieren, wird außerdem die Assembly neu kompiliert. Daher hat die Baugruppe auch eine andere MVID.

Von Error message when you execute a CLR routine or use an assembly in SQL Server 2005: "Assembly in host store has a different signature than assembly in GAC. (Exception from HRESULT: 0x80131050)" http://support.microsoft.com/kb/949080

Wenn Sie das alles, was Sie tun müssen, tun begegnen wird die Anweisung ALTER ASSEMBLY verwenden, um die neue Montage

+0

ich unter Verwendung einiger Baugruppen nicht unterstützt .NET bin definitiv repoint. (Ich habe einen CLR-Trigger geschrieben, um beim Einfügen von Daten mit WPF-Druck zu drucken.) – Conrad

0

Gibt es irgendetwas, was ich tun muss, wenn .NET Service Packs/Bugfixes von MS veröffentlicht und dann über die üblichen Microsoft Updates installiert werden?

Nein. Fixes werden normalerweise auf die Laufzeit selbst angewendet, sodass Sie Ihre Assemblys oder irgendetwas nicht neu erstellen müssen.

Ist die SQL-Assembly eine Verknüpfung zur ursprünglichen .NET-DLL oder nimmt SQL Server eine eigene private Kopie an?

SQL Server behält Kopien für sich selbst, die Sie in der sys.assembly_files Ansicht sehen können.

Verwandte Themen