Autor
|
Thema: .NET Framework 2.0 -> 1.1 (1071 mal gelesen)
|
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005
|
erstellt am: 25. Jan. 2008 12:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ist es möglich, im Visual Studio 2005 anstatt des Framework 2.0 die Version 1.1 zu benutzen ? (wg. Kompatibilität zu einer älteren CAD-SW) Das Entfernen der Referenzen auf 2.0 und Hinzufügen von 1.1 ist offenbar nicht ausreichend, evtl. weil 2.0 im Cache verbleibt und sicht nicht ohne weiteres entfernen läßt ? Ideal wäre eine Einstellung, die für das jeweilige Projekt die Auswahl des verwendeten Frameworks erlaubt. Gibt's so was ? Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 25. Jan. 2008 12:58 <-- editieren / zitieren --> Unities abgeben: Nur für mseufert
Hallo, ich weis nicht, ob es funktioniert aber es kann sein, dass du nur eine Datei anlegen musst, die den gelichen Namen hat wie dein Programm (z.B. Makro.exe) + .config (z.B. Makro.exe.config) mit dem Inhalt <configuration> <startup> <supportedRuntime version="v1.1.4322"/> <requiredRuntime version="v1.1.4322"/> </startup> </configuration> Bei SmarTeam-Programmen wird das z.B. so gemacht. Ob das bei anderen möglich ist, weis ich leider nicht. Aber anscheinend ruft dann die Prozedur die Config auf und zieht dann die dort genannte Version an. ------------------ MFG Rick Schulz Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005
|
erstellt am: 25. Jan. 2008 13:04 <-- editieren / zitieren --> Unities abgeben:
|
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2212 3D Printer Prusa MK2 S
|
erstellt am: 25. Jan. 2008 15:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Rick, das haut leider nicht hin, trotzdem mal besten Dank. Wahrscheinlich wird die .config erst zur Laufzeit angezogen, das Problem besteht jedoch schon zuvor. VS zeigt zwar "nur" ff. Warnung, das Erstellen der .exe ist damit aber nicht möglich. Assembly 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll' references assembly 'System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', which is ambiguous between 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll' (referenced by project 'file2pnt-nx4') and 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll' (referenced by project 'file2pnt-nx4'). 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll' will be used. If both assemblies are identical, change the references to the same location. C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll VS kümmert sich also offenbar nicht um die .config. Gruß und schönes Wochenende, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 25. Jan. 2008 15:49 <-- editieren / zitieren --> Unities abgeben: Nur für mseufert
|
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005
|
erstellt am: 25. Jan. 2008 16:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Axel, das ist schon klar, zur Zeit sind ja u.a. beide betreffenden Versionen drauf. VS greift sich allerdings neben der angegebenen 1.1 auch die 2.0, obwohl m.W. keine Referenz mehr darauf bestehen dürfte, da alle entfernt wurden. Die Properties der Referenzen zeigen korrekt auf 1.1, trotzdem taucht in der Warnung die 2.0 auf. Irgendwo "in den Weiten des Visual Studio" liegt da noch ein Hund begraben, der sich bislang ganz gut versteckt hält. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2657 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** Dell Precision 7540 mobile Workstation, 64GB, Quadro RTX 3000; SWX2020 SP5; SAP/PLM+ECTR; DriveWorks Pro; Programmierung: VBA, aktuell Visual Studio 2017/VB.Net
|
erstellt am: 16. Apr. 2008 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für mseufert
Kannst du nicht beide Versionen drauflassen und dann die DLL mit der richtigen registrieren? Dem CAD-System sollte das doch egal sein, welche .net-Version die DLL nutzt. Ich habe bei mir alle Versionen von 1.1 bis 3.5 drauf, incl. VB.Net 2005 und 2008 (jeweils express) und habe bisher keine Probleme. Dafür habe ich mir noch ein kleines Script erstellt, das versucht die DLL mit allen vorhandenen Versionen zu registrieren (regasm.exe). Gibt zwar einen Haufen Fehlermeldungen, aber das ist wurscht. ------------------ Klaus [edit] regasm32.exe war falsch. richti ist regasm.exe [/edit] www.al-ko.com | mein Gästebuch | privat... [Diese Nachricht wurde von KMassler am 21. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005
|
erstellt am: 18. Apr. 2008 14:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, es sind beide Versionen drauf, das Problem ist, wie oben schon mal beschrieben, daß sich VS beim Veruch, zu kompilieren, die 2.0 greift. Evtl. ist das zu vermeiden bzw. zu steuern, indem man, wie Du schreibst, "die dll mit der richtigen Version registriert" ? Kannst Du mir bitte erläutern, wie das funktioniert ? Der CAD- SW ist die Version wegen unterschiedlicher Funktionsumfänge leider nicht egal, die neue Version kann halt mehr als die Älteren. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2657 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** Dell Precision 7540 mobile Workstation, 64GB, Quadro RTX 3000; SWX2020 SP5; SAP/PLM+ECTR; DriveWorks Pro; Programmierung: VBA, aktuell Visual Studio 2017/VB.Net
|
erstellt am: 21. Apr. 2008 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für mseufert
Zitat: Original erstellt von mseufert: Hallo Klaus,es sind beide Versionen drauf, das Problem ist, wie oben schon mal beschrieben, daß sich VS beim Veruch, zu kompilieren, die 2.0 greift. Evtl. ist das zu vermeiden bzw. zu steuern, indem man, wie Du schreibst, "die dll mit der richtigen Version registriert" ? Kannst Du mir bitte erläutern, wie das funktioniert ? ...
beim Registrieren wird die fertige DLL auf dem System registriert, also sozusagen richtig eingebunden. Welche Framework-Version für die DLL benutzt wird, wird aber schon bei der Kompilierung entschieden. Die DLL kann dann nur noch mit dieser Framework-Version registriert werden. Für das Registrieren erstellst du dir am besten eine .cmd-Datei, die versucht, deine DLL mit jeder vorhandenen Framework-Version mit regasm.exe zu registrieren. Im Verzeichnis %SystemRoot%\Microsoft.NET\Framework gibt es für jede installierte Version ein Unterverzeichnis. Auf 64bit-Rechnern zusätzlich auch noch im Verzeichnis %SystemRoot%\\Microsoft.NET\Framework64 In jedem dieser Unterverzeichnisse der Versionen 1 und 2 gibt es ein regasm.exe. (in den Versionen 3.x gibts das komischerweise nicht, ich nehme an, dass diese einfach die regasm.exe der Version 2 verwenden. Ich habe aber bisher noch keine DLL mit VB2008 erstellt, daher weiß ich nicht, ob das mit denen dann auch noch klappt) Du muss nur für jede vorhandene regasm.exe eine Zeile in dein Skript schreiben in der Form: %SystemRoot%\Microsoft.NET\Framework\<Versionsverzeichnis>\regasm.exe deineDLL.dll /codebase Ich hab die mal so ein Skript von mir drangehängt, mit dem eine Menü-DLL für mein SolidWorks sozusagen installiert wird, das muss du halt noch für dich anpassen.
Wie gesagt: hier wird versucht, die DLL mit ALLEN Framework-Versionen zu registrieren. Bei den meisten schlägt das fehl, aber das ist egal. Zitat: Original erstellt von mseufert: ...Der CAD- SW ist die Version wegen unterschiedlicher Funktionsumfänge leider nicht egal, die neue Version kann halt mehr als die Älteren. Gruß, Michael
Das ist klar, aber der Funktionsumfang wird doch nicht vom .Net-Framework bestimmt, sondern von deiner CAD-SW bzw. deren API. Und der ist es egal, mit welcher .Net-Framework-Version deine DLL kompiliert wurde, die CAD-API interessiert sich nur für die richtigen Funktionsaufrufe. HTH
------------------ Klaus www.al-ko.com | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Ehrenmitglied V.I.P. h.c. Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005
|
erstellt am: 21. Apr. 2008 11:52 <-- editieren / zitieren --> Unities abgeben:
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2657 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** Dell Precision 7540 mobile Workstation, 64GB, Quadro RTX 3000; SWX2020 SP5; SAP/PLM+ECTR; DriveWorks Pro; Programmierung: VBA, aktuell Visual Studio 2017/VB.Net
|
erstellt am: 21. Apr. 2008 11:55 <-- editieren / zitieren --> Unities abgeben: Nur für mseufert
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|