Laden...

Wie kann ich mit SharpDevelop Projekte mit ActiveX Components kompilieren?

Erstellt von backspeck42 vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.366 Views
B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren
Wie kann ich mit SharpDevelop Projekte mit ActiveX Components kompilieren?

Hallo Leute,

ich bin gerade dabei, Sharpdevelop als Entwicklungsumgebung einzurichten. Soweit so gut, habe SharpDevelop installiert, .MS-Build-Tools und das Windows SDK und das .Net 4,5 SKD.
Das kompilieren und debuggen von Projekten ohne Referenz zu einem ActiveX-Objekt funktioniert bereits einwandfrei, doch wenn ich versuche ein Projekt mit ActiveX-Referenz zu komplieren, kommt der Fehler, dass axlmp.exe nicht gefunden wurde.
Theoretisch sollte dieses File mit dem Windows SDK kommen und sich dort im Verzeichnis "bin/NETFX 4.0 Tools" befinden - tut es aber nicht.
Komischerweise finde ich dieses File auf meinen anderen Rechnern, auf denen ich Visual Studio verwende ebenfalls nicht - obwohl VS ja auch MSBuild nutzt und letztlich auch auf diese Datei angewiesen sein müsste??
Hat jemand zufällig eine Ahnung oder ist bereits über das Problem gestolpert?

Viele Grüße
bs

5.657 Beiträge seit 2006
vor 3 Jahren

ActiveX und SharpDevelop, ist das ein archäologisches Projekt? 8)

Siehe dazu Wie schreibe ich einen Restful Webservices unter SharpDevelop?

Weeks of programming can save you hours of planning

T
2.219 Beiträge seit 2008
vor 3 Jahren

SharpDevelop würde ich nicht mehr verwenden.
Die letzte Version ist von 2016 und supportet offiziell nur .NET Framework 4.5.1
Alles darüber ist entweder nur bedingt oder ab .NET Core/5 nicht mehr verwendbar.

SharpDevelop kann man nur noch für alte Projekte verwenden, die man nicht updaten will/kann.
Ansonsten gilt ab .NET 5 primär Visual Studio oder eine aktuelle IDE.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

ActiveX und SharpDevelop, ist das ein archäologisches Projekt? 8)

Siehe dazu
>

Könnte man sagen - ja.

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Ja ist genau das was ich brauche. .Net 4.5 und ActiveX. Dafür reicht beim Kunden. Sharpdevelop wird genutzt, da für ihn M$-Lizensen nicht in Frage kommen...

...und ich habe sogar fast eine Lösung: Ich installierte Windows SDK for Windows 7 and .NET4 (das was sharpdevelop vorschlägt) und kopiere dann die AxImp.exe von meinem lokalen Entwicklungsrechner auf das entsprechende System. Soweit so gut - funktioniert auf der VM...aber nicht auf dem Rechner des Kunden. Da bricht das SDK-Setup ab (scheint Visual c++ redestribultibles nicht installieren zu können, da die schon drauf sind?).

309 Beiträge seit 2020
vor 3 Jahren

Soweit so gut - funktioniert auf der VM...aber nicht auf dem Rechner des Kunden. Da bricht das SDK-Setup ab (scheint Visual c++ redestribultibles nicht installieren zu können, da die schon drauf sind?).

Also ist dein Problem jetzt die Installation des SDK auf dem Kundenrechner? Bricht das ganze Setup ab?

2.078 Beiträge seit 2012
vor 3 Jahren

... oder Ihr verwendet Visual Studio Code

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Ja das ganze Setup brach ab. Auch wenn ich die Redistributibles aus der Installation herausnahm.

Ich habe das Problem jedoch gelöst bekommen - AxImp.exe manuell in ein Verzeichnis kopiert und dann die Environmentvariable "TargetFrameworkSDKToolsDirectory" erstellt, die auf jenes Verzeichnis zeigt. Es ist auch kein Registry-Key nötig.

Nun kann ich meine alten Projekte auch kompilieren und ActiveX Komponente wird auch eingebunden. Eine Sache ist dennoch komisch. Irgendwie häng ich auf ner uralten Sprachversion, die nicht mal Lambdas kennt - obwohl ich ja als .Net-Sdk die Version 4.5.2 nutze. Da müsste der Compiler doch eigentlich schon C# 5.0 können, oder?
Naja vermutlich noch irgendwo ein falsches Toolset eingestellt oder so...

T
2.219 Beiträge seit 2008
vor 3 Jahren

Das Problem wird eher SharpDevelop sein.
Da die neuen C# Versionen vom Roslyn compiliert werden, was SharpDevelop aber nicht kennt, wirst du auch nur bestimmte C# Versionen nutzen können.
Neuere Sprachfeatures wirst du wegen dem Compiler von SharpDevelop nicht nutzen können.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

2.078 Beiträge seit 2012
vor 3 Jahren

... oder Ihr verwendet Visual Studio Code

Was spricht denn dagegen?
Es steht vielleicht "Visual Studio" im Namen, aber es ist kein Visual Studio.

Damit kann man (fast) alles machen, was mit Visual Studio auch geht, nur nicht ganz so komfortabel, da es breiter aufgestellt ist.
Der kleine Rest, der nicht geht (z.B. ein paar Debugging-Features), werden vielleicht noch als Extension nach kommen oder sind so speziell, dass sie für die meisten Projekte irrelevant sind.

Ihr könnte natürlich auch SharpDevelop als besseren Text-Editor nutzen und alles, was nicht geht, per Hand basteln, aber ich würde da VS Code bevorzugen.

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Ok Verwirrung meinersteits. Das was fehlte sind nicht Lambdas an sich sondern "Expression-bodied members" - welche ja selbigen Operator nutzen. Diese wurden erst mit C# 6 eingeführt und ich habe C# 5 - wie ursprünglich erwartet.
Also nicht so schlimm - dann nutze ich einfach "normale" Properties und Members, ist nichts was wirklich fehlt...

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Visual Studio Code war mein erster Plan. Das funktionierte mit .Net Core auch ganz gut. .Net Framework habe ich nicht hinbekommen, bzw. bin gleich den anderen Weg gegangen, da ich las, VS Code unterstützt .Net-Framework nur mit Abstrichen (gerade was Debugging angeht).
Hat sich dahingehend was geändert? Gibt es eine einfache Möglichkeit, VS Code zur Zusammenarbeit mit .Net-Framework zu bewegen und auch volles Debugging zu haben? Dann wäre es einen Versuch wert...

2.078 Beiträge seit 2012
vor 3 Jahren

Mir sind keine Probleme mit .NET Framework bekannt, könnte es mir aber vorstellen, da das .NET Framework im Grunde tot ist. Naja ... nicht tot, aber es wird nicht mehr weiterentwickelt.

Aber rechtfertigen diese Debugging-Abstriche denn den Aufwand, mit SharpDevelop umzugehen?
Die meisten Probleme brauchen keine komplexen Debugging-Features, das Wichtigste sollte FS Code alleine hin bekommen - selber getestet habe ich es aber nicht.

Abgesehen davon:
Schlechter als ein veraltetes SharpDevelop wird's wohl kaum sein 😉

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Naja das ist nun keine besonders zielführende Aussage. Wie gesagt, ich nutzte (privat) VS Code für ein .Net Core-Projekt, .Net Framework ging aber nicht "out of the Box". Was ich las war, dass man z.B. kein 32-Bit Debugging mit VS Code machen kann, wenn man .Net-Framework nutzt.

Hier ein paar Zitate von der Microsoft VS Code Seite:
"VS Code only supports a limited set of project types (primarily .NET Core). For full .NET project support, we suggest you use Visual Studio Community."

und auf GitHub:
"The C# extension supports limited full .NET framework debugging. It can only debug 64-bit applications with portable PDBs."

Du kannst mich gern eines besseren belehren - dann aber mit Fakten und nicht mit Vermutungen! 😉

Soweit so gut, nun läuft es ja mit SharpDevelop und ist für meine Zwecke ausreichend!

P.S.
Nein ich kann nicht auf .Net Core gehen, da es sich bei den in der Umgebung zu bearbeitenden Projekten um Extentions für ein anderes Programm handelt, die nun mal mit .Net 4.5 und in 32-Bit kompiliert sein müssen...

Hinweis von MrSparkle vor 3 Jahren

Bitte keine Full Quotes! Bitte beachte [Hinweis] Wie poste ich richtig?

5.657 Beiträge seit 2006
vor 3 Jahren

Du kannst mich gern eines besseren belehren - dann aber mit Fakten und nicht mit Vermutungen! 😉

Bitte immer schön den Ball flachhalten!

Es ist doch von Anfang an klar, daß niemand hier in SharpDevelop oder VS Code C# entwickelt. Alle versuchen trotzdem, dir mit deinen sehr merkwürdigen Anforderungen zu helfen.

Da muß dir hier niemand irgendetwas beweisen.

Bitte beachte unbedingt [Hinweis] Wie poste ich richtig?

Weeks of programming can save you hours of planning

F
10.010 Beiträge seit 2004
vor 3 Jahren

Von VS gab es bis 2015 auch die Express Versionen.
Die hatten ein andere Lizenz als die Community und zumindest die 2013 und 2015 waren eigentlich genug zur Entwicklung.
Auf jeden fall besser als SharpDevelop
https://visualstudio.microsoft.com/de/vs/older-downloads/

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Die Aussage mit den Vermutungen bezog sich auf folgenden Satz:

Mir sind keine Probleme mit .NET Framework bekannt, könnte es mir aber vorstellen, da ...

Das klingt mir halt nach Vermutung. Beweisen muss mir niemand irgendetwas, aber wenn er stichhaltige Informationen hat, bin ich dankbar! Wenn nicht, dann bringen mich diese doch eher vagen Hinweise halt auch nicht weiter. War ja jetzt nicht irgendwie böse gemeint... 😃

Ansonsten entstehen halt manchmal sehr merkwürdige Anforderungen. Habe ich ja teilweise auch schon beschrieben, warum und wieso... 😉

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Von VS gab es bis 2015 auch die Express Versionen.
Die hatten ein andere Lizenz als die Community und zumindest die 2013 und 2015 waren eigentlich genug zur Entwicklung.
Auf jeden fall besser als SharpDevelop

>

Aus lizenztechnischen Gründen kann mein Kunde, für den ich das einrichte, das aber nicht nutzen. Daher ja der Aufwand... 😉

2.078 Beiträge seit 2012
vor 3 Jahren

So ist die Welt nun mal, eine IDE mit entsprechenden (Debugging-) Features ist eine verdammt komplexe Angelegenheit und niemand supportet sowas gerne ewig in die Vergangenheit, ohne Geld dafür zu bekommen.
Wenn Ihr also auf alten Technologien sitzen bleiben wollt/müsst und zusätzlich das vorhandene (immer noch sehr gute) Tool ablehnt, müsst Ihr mit den Einschränkungen leben.

Was mir aber gerade noch einfällt:
Es gibt noch JetBrains Rider, das scheint ja gerade sehr an Beliebtheit zu gewinnen und es unterstützt alle aktuellen .NET-Implementierungen.
Doch dafür gibt's keine kostenlose Edition, wenn also der Preis der Grund für die Ablehnung ist, fällt das auch raus.

5.657 Beiträge seit 2006
vor 3 Jahren

Bitte verwende keine Full Quotes, wir haben keine Lust, ständig deine Beiträge zu editieren.

Bitte beachte [Hinweis] Wie poste ich richtig?, Punkt 2.3

Weeks of programming can save you hours of planning

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Was mir aber gerade noch einfällt:
Es gibt noch JetBrains Rider, das scheint ja gerade sehr an Beliebtheit zu gewinnen und es unterstützt alle aktuellen .NET-Implementierungen.
Doch dafür gibt's keine kostenlose Edition, wenn also der Preis der Grund für die Ablehnung ist, fällt das auch raus.

Also erstmal danke für deine Hilfe!
Jetbrains wäre evtl. eine Alternative gewesen. Naja nicht mal der Preis war der Grund ... z.T. auch andere, politische nenne ich es jetzt mal... (Da gibt es Softwarerahmenverträge die eingehalten werden müssen, dann müssen die Lizensen RDP anbieten, was auch nicht immer der Fall ist und und und) 😉

Wie gesagt - gern VS Code. Aber wenn es mit dem alten .Net-Framework nicht harmoniert, nützt es in dem Falle nicht.
Vermutlichen wird VS Code halt nebenläufig betrieben für neue Projekte in .Net Core oder so - oder ich bekomme es noch mit .Net Framework zum Laufen ... aber erstmal habe ich ja eine funktionierende Lösung und auch noch anderes zu tun... 😃

2.078 Beiträge seit 2012
vor 3 Jahren

Das klingt mir halt nach Vermutung.

Das sollte auch nach Vermutung klingen, deshalb hab ich es geschrieben.
Das sollte eine Art "Probier es doch mal aus"-Hinweis sein, denn SharpDevelop halte ich für die am wenigsten zielführende Lösung, besonders wenn man auch die Zukunft im Auge behält.

Ansonsten hätte ich noch eine ganz wilde Idee: .NET Standard
Ich hab letztens .NET Standard 2.0 mit .NET Framework 2.0 ans Laufen bekommen. Keine Ahnung wie und warum das ging, aber es ging.
.NET Framework 4.5 unterstützt .NET Standard 1.1, eventuell bekommst Du die wichtigste Logik damit ans Laufen und für die tägliche Entwicklungsarbeit könnt Ihr dann ein .NET Core-Programm nutzen.
Der Kunde bekommt dann ein .NET Framework 4.5 anstelle des .NET Core Programms, was die .NET Standard-Bibliotheken nutzt.

Sprich:
Der Code für die ganzen DLLs ist gegen .NET Standard gebaut, die fertige Version für den Kunden ist .NET Framework.
Für die tägliche Arbeit wird dann anstelle des .NET Frameworks ein .NET Core verwendet, was wiederum mit VS Code läuft.
Eventuell läuft auch eine neuere .NET Standard-Version, das hängt möglicherweise davon ab, was Ihr tatsächlich für Funktionen nutzt, wenn etwas nicht unterstützt, aber nie genutzt wird, fällt das vermutlich nie auf.

Aber nochmal ganz deutlich: Sehr wilde Idee, wenn es funktioniert, ist das sicher keine langfristige Lösung.
Für die Zukunft könnte man so aber relativ einfach auf neuere .NET Framework-Versionen oder sogar .NET Core/5 umsteigen, immerhin ist dann schon der Großteil .NET Standard.

F
10.010 Beiträge seit 2004
vor 3 Jahren

@backspeck42:
Hast Du dir die Lizenz von EXPRESS denn mal durchgelesen?

Es gibt, im Gegensatz zu der Community, keine Begrenzung wegen Umsatz oder grösse.
Die Einschränkung ist lediglich das Express keine Addins erlaubt.
Es sind aber sowohl hausinterne als auch kommerzielle Produkte möglich.

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

@backspeck42:
Hast Du dir die Lizenz von EXPRESS denn mal durchgelesen?
Es sind aber sowohl hausinterne als auch kommerzielle Produkte möglich.

Tatsächlich. Das hatte ich so gar nicht auf den Schirm. Danke für den Tipp!

B
backspeck42 Themenstarter:in
35 Beiträge seit 2019
vor 3 Jahren

Ansonsten hätte ich noch eine ganz wilde Idee: .NET Standard
Ich hab letztens .NET Standard 2.0 mit .NET Framework 2.0 ans Laufen bekommen. Keine Ahnung wie und warum das ging, aber es ging.

Das könnte evtl. funktionieren. Weiß ja nicht, wie die (das Programm womit ich meine libraries aufrufe) ihren CLR-Wrapper geschrieben haben um das aufzurufen ... aber theoretisch sollte das eigentlich klappen...

Also eine Lösung für die Ewigkeit ist es sicher nicht. Aber für die zu erledigenden Dinge und den Umstand, dass ich eh auf .Net 4.5 festhänge ... nicht so wild und dafür wird es erstmal reichen... 😉