C# VS08, Probleme beim hinzufügen von Verweisen

estre

Commander
Registriert
Dez. 2005
Beiträge
3.006
Hi Leute,

ich habe einen ziemlich „kuriosen“ Fehler bei dem ihr mir hoffentlich weiterhelfen könnt.

Und zwar habe ich ein Projekt in Visual C# Express 2010 erstellt.
Um den Remotedebugger nutzen zu können musste ich dieses Projekt nun auf Visual Studio 2008 Professional übertragen.

Dies klappt soweit auch sehr gut, allerdings muss ich diverse Verweise neu hinzufügen.
Nun habe ich das Problem, dass VS08 bestimmte Verweise nicht mehr findet, obwohl ich die korrekten DLL-Dateien in meinem system32-Ordner angebe.
Der Fehler äußert sich nun darin, dass im VS08 Projekt angeblich die Using-Direktiven fehlen, im Projektmappenexplorer sind die betroffenen Verweise mit einem gelben Ausrufezeichen-Dreieck versehen.


Im Anhang seht ihr mal die identischen Verweise im Vergleich. VS08 scheint die Datei nicht wirklich laden zu können.

Meine Frage ist nun, ob ich irgendetwas falsch gemacht habe?

Danke für Eure Hilfe


edit:
Habe die Ursache schon gefunden, es liegt daran, dass das VS10-Projekt unter .Net 4.0 ausgeführt wird und bei VS08 unter .Net 3.5

Gibt es eine Möglichkeit VS08-Projekte unter .Net 4.0 laufen zu lassen?
 

Anhänge

  • vs08_falsch.PNG
    vs08_falsch.PNG
    14,7 KB · Aufrufe: 235
  • vs10_richtig.PNG
    vs10_richtig.PNG
    20,7 KB · Aufrufe: 249
Zuletzt bearbeitet:
Hm. Vergiss was hier stand. Seh grad dein edit. Hast es ja alleine rausgefunden ;) Sorry.

Edit.
Du brauchst VS10 für .NET4. Mit 2008 geht es nicht.
 
Zuletzt bearbeitet:
stimmt -.-

das reißt mir so ziemlich den boden unter den Füßen weg, da ich nur eine VS08 Lizenz besitzte und das Tool dringend auf einem Produktivserver debuggen muss.

naja, wie ich gelesen habe kann man da wohl nichts machen, wenn die dll's für .Net 4 geschrieben sind ....
 
Dann sag deinem Chef, er soll ein wenig Geld für VS10 Pro locker machen ;)
Oder begnüg dich mit der VS11 Beta ;)
 
Hi,

@PapsrRatze
Weil VS10 Express kein RemoteDebugging kann, darin besteht das Problem.
Ich habe es bisher immer nur auf meinem lokalen Rechner debuggt, allerdings sind auf dem Produktivrechner noch etwas andere Voraussetzungen.
 
Lad doch dein Projekt nochmal unter VS 2010 Express, stell die Ziel-Runtime zurück auf .NET 3.5 und kompilier neu. Solange du alle Verweise auf selbstgeschriebene Komponenten setzt, wird das gesamte Projekt downegradet. Dann kann man es auch unter VS 2008 weiterbearbeiten.

Wenn die Verweise auf Fremdassemblies zeigen, dann könnte man ja versuchen .NET 3.5-Versionen davon beim Hersteller zu besorgen.
 
Will ja nichts sagen, aber Visual Studio Express Versionen sind nur für Private Zwecke, also kein Produktiv-/Geschäftlicher Code...

Unter den Properties (Doppelklick im Solution Explorer) des jeweiligen Projektes in der Solution kannst du das Projekt auf .Net 3.5 Umstellen... neu kompilieren und schaun, ob die Verweise jetzt gehn...
Falls nicht, dann die nötigen Komponenten einfach direkt mit in die Solution packen und lokal verweisen.

Alle Projekte in der Solution sollten die gleiche .Net - Version haben.
 
Erdmännchen schrieb:
Will ja nichts sagen, aber Visual Studio Express Versionen sind nur für Private Zwecke, also kein Produktiv-/Geschäftlicher Code...

Ich glaube da hast du etwas falsch verstanden.

Wikipedia schrieb:
Die Express Editions dürfen auch für kommerzielle Projekte verwendet werden und damit erstellte Programme und Arbeiten, an denen man selbst die Urheberrechte hält, dürfen auch zu gewerblichen Zwecken genutzt, verkauft oder veröffentlicht werden.[17] Microsoft schränkt die Nutzung der Express Editions also nicht über die gesetzlichen Bestimmungen des Urheberrechtsgesetzes für verkaufte Software hinaus ein, obwohl das bei kostenfrei abgegebener Software zulässig ist, und nicht überraschend wäre.

Eine Haftung für Schäden und die gewerbliche Verbreitung wird in den Lizenzbedingungen allerdings ausgeschlossen. Zudem verpflichten sie den Nutzer, "Microsoft von allen Ansprüchen freizustellen und gegen alle Ansprüche zu verteidigen, einschließlich Anwaltsgebühren, die mit dem Vertrieb oder der Verwendung Ihrer Programme in Zusammenhang stehen". In den Lizenzbedingungen ist auch eine "Zustimmung für internetbasierte Dienste" "ohne gesonderten Hinweis" enthalten.

1.) Es ist sehr wohl erlaubt damit gewerblich Software zu entwickeln. Was verboten ist, ist der gewerbliche Vertrieb von Visual Studio 2010 Express selbst, da es ja eine kostenlose Version sein soll.

2.) Verwendet das Projekt auch .NET 4.0 dlls? In diesem Fall musst du diese auch auf .NET 3.5 zurückstellen und neu kompilieren.

3.) Eine andere Möglichkeit wäre es, ein neues Projekt (.NET 3.5 oder niedriger) anzulegen, alle Source Files hinein zu kopieren, die Projekteinstellungen bei Bedarf anzupassen (Referenzen etc.) und dann neu zu kompilieren. Das funktioniert auf jeden Fall, es sei denn es sind Features verwendet worden, die in .NET 3.5 nicht zur Verfügung stehen (z.B. optionale Parameter bei C#, Auto implementing Properties etc.)

4.) Ich würde generell dazu raten, die VS Projekte nur in der .NET Version zu übersetzen, die auch wirklich notwendig ist. Eine Installation von .NET 3.5 ist eine aufwändige Angelegenheit unter Windows XP und Vista, die auch gerne einmal schief gehen kann und auf Kundenrechnern versuche ich das deshalb zu vermeiden (vor allem bei Servern).
Der Installer ist auch mit ca. 200MB deutlich größer, als der von .NET 2.0 (ca. 20MB), wobei die meisten Rechner das .NET 2.0 schon installiert haben sollten.

Deshalb entwickle ich immer noch alles für .NET 2.0. Die Features von 3.5 und 4.0 sind nicht so wichtig, dass sich eine generelle Umstellung rentieren würde.

5.) Es gibt auch von Microsoft eine Testversion, die du 90 Tage kostenlos nutzen kannst:
http://www.microsoft.com/de-de/download/details.aspx?id=4765
 
Zuletzt bearbeitet:
Hi,

danke für Eure Antworten.

andr_gin schrieb:
2.) Verwendet das Projekt auch .NET 4.0 dlls? In diesem Fall musst du diese auch auf .NET 3.5 zurückstellen und neu kompilieren.
Woran erkenne ich denn grundsätzlich ob dlls für .NET 4.0 geschrieben sind? Diese Interop.COMAdmin.dll ist eine nicht näher beschriebene Klassenbibliothek von Microsoft, die zur Verwaltung von COM+Komponenten dient. Ich musste mir mühselig im Internet zusammensuchen was das Teil überhaupt alles kann und was ich davon gebrauchen kann ^^

Um zu deinem Zitat zurück zu kommen, wie kann ich denn diese "proprietären" Windows-dll's neu kompilieren ?

andr_gin schrieb:
3.) Eine andere Möglichkeit wäre es, ein neues Projekt (.NET 3.5 oder niedriger) anzulegen, alle Source Files hinein zu kopieren, die Projekteinstellungen bei Bedarf anzupassen (Referenzen etc.) und dann neu zu kompilieren. Das funktioniert auf jeden Fall, es sei denn es sind Features verwendet worden, die in .NET 3.5 nicht zur Verfügung stehen (z.B. optionale Parameter bei C#, Auto implementing Properties etc.)

Genau das habe ich ja gemacht, hat aber letztlich dann wie oben beschrieben nicht funktioniert.

Gruß
 
Zurück
Oben