10. November 2011 09:55
Hi,
ich habe hier eine .dll geschrieben, die in NAV als automation server eingebunden werden kann. Diese funktioniert auch schon soweit sehr gut. Nun musste ich aus Architektur-Gründen nun Attribute einbinden. Diese Attribute sind leider nicht in NAV zu sehen.
Hier meine Konstellation:
1. Klasse (COMVISIBLE, PUBLIC)
2. Attribute (PUBLIC)
3. Interface (COMVISIBLE, PUBLIC)
Der Zeit ist mir nicht bewusst was hier schief geht. Hat jemand evtl. eine Idee?
Zuletzt geändert von MatthiasKönig am 10. November 2011 11:43, insgesamt 1-mal geändert.
10. November 2011 11:16
Attribut per Set und Get Methode verfügbar machen.
10. November 2011 11:43
das hatte ich... ABER was noch gemacht werden musste ist,dies auch in dem Interface sicher zu stellen:
- Code:
[DispId(10401)]
string CompanyNameValue { set; get; }
10. November 2011 13:49
Okay, davon war ich ausgegangen
10. November 2011 14:32
irgendwie dachte ich, dass die getter und setter (XD) nicht extra definiert werden müssten. Aber danke :)
10. November 2011 16:17
Hallo,
eine Frage zur Registrierung.
Wie kann man eine DLL ohne Visual Studio registrieren?
Der folgende Link hat nicht zum Erfolg geführt?
http://www.navision24.de/downloads/date ... erung.htmlKennt jemand eine einfache Variante?
14. November 2011 16:45
sorry, erst jetzt gesehen ^^
eine .NET DLL per regasm:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "C:\Users\BENUTZER\Documents\Visual Studio 2010\Projects\Projekt Nummer 1\ProjektOrdner\bin\x86\Debug\Meine.dll" /tlb:"C:\Users\BENUTZER\Documents\Visual Studio 2010\Projects\Projekt Nummer 1\ProjektOrdner\bin\x86\Debug\Meine.tlb"
diese dann noch in den Global Assembly Cache:
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\gacutil.exe" /i "C:\Users\BENUTZER\Documents\Visual Studio 2010\Projects\Projekt Nummer 1\ProjektOrdner\bin\x86\Debug\Meine.dll"
14. November 2011 17:06
Hallo,
danke für dir Antwort.
Also "GacUtil" habe ich bis jetzt immer aus dem folgenden Pfad verwendet:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe
und das macht anscheinend die Probeme?
Welche Unterschiede gibts es denn da?
Ist ausserdem bei jedem die Microsoft SDKs installiert?
C:\Programme\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe
Ich habe bei mir diesen Pfad nur gefunden:-)
Gruß
Aydin
15. November 2011 11:16
Ich hatte nur Probleme als ich .NET 4.0 verwendet habe und nicht das aktuelleste GACUTIL sonst ist der Pfad Versionsabhängig.
Evtl. einfach mal die neuste Version des Windows SDKs installieren. Schaden tut das bestimmt nicht :)
Hast das evtl. schon ausprobiert?
15. November 2011 11:25
Genau, ich habe das bereits ausprobiert sogar mit der bestehenden Version, also mit der 6 Version, lief sauber durch.
C:\Programme\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe
MIt der Bestätigung, dass es im globalen Cache gelandet ist.
Und für die Testzwecke habe ich mal nochmal mit dem Pfad versucht, wieder ohne erfolg:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe
Also gibt es zwischen diesen gacutils Unterschiede:-)
Zumindest weiß ich nun, welchen Pfad ich dafür verwenden soll.
Ich müsste es nochmal auf einem Rechner ausprobieren, wo kein Visiual Studio installiert ist.
Die Frage ist, ob es diese SDks auch dort gibt?
C:\Programme\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe
Werden diese SDKs aber nicht dann installiert, wenn man VS installiert?
Danke für deine Hilfe.
9. August 2012 11:10
Hallo,
ich muss das mal kurz ausgraben.
Ich habe ebenfalls eine C# Automation erstellt, die ich auf meinem lokalen Rechner (wo auch das VS installiert) ist, in NAV verwenden kann.
Im Internet gibt es diverse Hinweise dass man eine .NET DLL auch mit einem Setup-Projekt über VS auf anderen Rechnern registrieren kann.
Dazu soll man einfach in dem Setup-Projekt den Ordner "Cacheordner für globale Assembly" hinzufügen, und dort den Projektoutput (Primäre Ausgabe) hinzufügen. In den Eigenschaften der Primären Ausgabe wählt man Register: vsdrpCOM
Die .tlb Datei braucht man dann nicht mit einzuschließen, weil diese auf dem Zielsystem automatisch erstellt wird.
So, wenn ich nun die setup.exe auf dem Zielrechner ausführe, dann sehe ich zwar die DLL im globalen Assemblycache Ordner (C:\Windows\assembly), aber NAV findet sie nicht als Automation Server.
Hat jemand vielleicht noch eine Idee oder Tipp woran es liegen kann?
gruß
12. September 2012 17:53
Wir haben dies anders gelöst: wir lassen die DLL beim installieren wirklich registrieren. Das heisst, es plöppt bei der Installation ein DOS-Fenster auf welches die DLL im System registriert.
Wenn du mehr Infos brauchst, melde dich ruhig :)
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.