Mit C#.NET von Webparts des SharePoint Portal Server auf Axapta COM zugreifen
-
Hallo C#-Kenner,
ich hab folgendes vor: Zugriff von SharePoint Portal Server-Webparts auf den Axaptap COM-Connector.
Der SharePoint Portal Server (SPPS) stellt sogenannte Webparts auf .NET-Ebene bereit (ASP.NET -ähnlich). Diese Webparts werden als templates durch ein .NET-PlugIn angeboten. Man kann damit beliebig in C# programmieren und bestimmte Ausgaben im SPPS realisieren. Dieser Schritt funktioniert. Folgender Quelltext:namespace SPS_test { [ToolboxData("<{0}:SPS-test runat=server></{0}:SPS-test>"), XmlRoot(Namespace="SPS_test")] public class WebPart1 : Microsoft.SharePoint.WebPartPages.WebPart { protected override void RenderWebPart(HtmlTextWriter output) { ; output.Write(SPEncode.HtmlEncode("text in SPPS")); } } }
Das Einbinden in SPPS erfordert einen starken Namen->Deswegen wird eine Datei mit Schlüssel in der AssemblyInfo.cs eingebunden:
SHARP][assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFileAttribute("c:\\keyp.snk")] [assembly: AssemblyKeyName("")]
Der Zweite Schritt ist der Zugriff mit C# auf den AXapta COM-Connector. Das funtkioniert auch. Hier wird einfach durch "Verweis hinzufügen" der COM-Connector eingebunden. Das kann dann so aussehen:
AxaptaCOMConnector.Axapta Axapta; AxaptaCOMConnector.IAxaptaObject thisClass; AxaptaCOMConnector.AxaptaParameterList ParamList; string custName = ""; string dAccountNum = "4000"; ; // first log into Axapta Axapta = new AxaptaCOMConnector.AxaptaClass(); ParamList = new AxaptaCOMConnector.AxaptaParameterListClass(); ParamList.Size = 1; ParamList.set_Element(1,dAccountNum); Axapta.Logon("admin", "", "", ""); thisClass = Axapta.CreateObject("ibs_CSharp","","","","","",""); Axapta.Refresh(); custName = thisClass.CallEx("retCustName",ParamList).ToString();
DAS PROBLEM: Das einfügen des letzteren Quelltextes in den Webpart von SPPS bringt folgenden Fehler:
Das Generieren der Assembly ist fehlgeschlagen -- Die verwiesene Assembly 'Interop.AxaptaCOMConnector' hat keinen starken Namen
Irgendwo erscheint mir das auch logisch, dass die AxaptaCOMConnector.dll keinen starken Namen hat. Daher hab ich schon mit dem sn-Tool viele Möglichkeiten der Abänderung dieser DLL versucht: Ohne erfolg. Auch verzögertes Signieren ging nicht
Hat jemand eine Ahnung wie man diesen COM-Connector einen starken Namen zuweist?
Für Hilfe wäre ich sehr sehr sehr dankbar.