[Gelöst] Reference erstellen, Bereitstellung beim Client?

11. November 2011 16:09

Hallo,

wir möchten eine von uns entwickelte .NET Bibliothek in AX einbinden. Es ist klar, dass sich die DLL im GAC der Entwickler befinden muss.
Muss die Referenz dann aber auch auf dem Client-PC vorhanden sein? Bzw. gibt es eine Möglichkeit, das zu umgehen? Evtl. mit der Eigenschaft "RunOnServer"?

Viele Grüße
Sven
Zuletzt geändert von Sven7 am 10. Februar 2012 10:54, insgesamt 3-mal geändert.

Re: Reference erstellen, Bereitstellung beim Client?

19. November 2011 01:31

Hi,

"RunOnServer" sollte bewirken, das der Code auf dem Server ausgeführt wird und somit auch die DLL's auf dem Server angesprochen werden.

Ich habe es bisher immer nur mit einem "voll" deployment gemacht. DLL's auf Server und Client deployed.
Sollte aber auch funktionieren, wenn die Klasse/Method auf "RunOnServer" steht und die DLL's "nur" auf den Server deployed werden.

Es gibt aber auch eine Klasse in AX mit der man das deployment auf den Client ausführen kann. Sysfile deploy oder sysdeploy. Irgendwie so war der Name.
Theoretisch sollte es damit möglich sein, vor der Verwendung einer DLL, erst zu prüfen ob diese auf dem Client vorhanden ist, und wenn nicht die mehr oder minder Just-In-Time auf den Client zu deployen.

Hoffe das hilft dir weiter.

Re: Reference erstellen, Bereitstellung beim Client?

21. November 2011 08:12

Danke!

Das hilft auf jeden Fall weiter. Ich werde mich mal mit der Klasse beschäftigen.

Viele Grüße,
Sven

Re: Reference erstellen, Bereitstellung beim Client?

2. Dezember 2011 12:42

Hallo,

ich muss hier leider nochmal einhaken.

Ich habe jetzt also eine DLL mit einer Klasse, die ich gerne einbinden will. Ich habe es zunächst nur auf meinem Rechner probiert, da lief es. Jetzt steht das Teil im GAC des Servers und die aufrufende Klasse hat die Eigenschaft "RunOn Server". Plötzlich bekomme ich eine Fehlermeldung, dass das CLR-Objekt nicht initialisiert werden kann. Ich habe jetzt durch probieren herausgefunden, dass es an der Anzahl der Übergabeparameter im Konstruktor der Klasse liegt.

Ich wollte gerne 4 Strings übergeben. Dann erhalte ich den Fehler. Reduziere ich es auf einen String, funktioniert es auf dem Server?! Ich bin etwas ratlos, denn das ist keine richtige Lösung für mich. Hab ich noch irgendwo einen Denkfehler?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Reference erstellen, Bereitstellung beim Client?

5. Dezember 2011 11:16

Hi,

ich hatte noch nie ein Problem mit der Anzahl der Parameter. Man sollte zwar nicht unbegrenzt viele verwenden, aber 4 Stück sollten im normalen Bereich liegen.
Btw.: Ich persönlich verwende niemals mehr als 7 Parameter.

Hast du schon versucht die DLL in das BIN-Verzeichnis des Servers abzulegen?
Hast du die Assmbly mit einem Key Signiert?

Ich habe es immer so gemacht, dass ich die Assembly mit einem Key signiert habe und dies dann im Bin Verzeichnis des Servers abgelegt habe.
Vorsichtshalber habe ich diese auch in das Client Bin Verzeichnis abgelegt.
Hat bisher immer funktioniert.

Re: Reference erstellen, Bereitstellung beim Client?

10. Februar 2012 10:53

Auch wenn es spät kommt, das hat es gebracht. Danke! Super Forum!