App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
[C#] 2 mal gleiches COM Objekt in verschd. Versionen integrieren
- Ersteller cr4wler
- Erstellt am
Hey!
Ich hab da gerade ein Problem...
und zwar will ich in einem Testprogramm 2 (gleiche!) COMs in verschd. Versionen einfügen...
Direkt geht natürlich nicht, Module unterstützt Visual Studio nicht, und wenn ich die 2 Programmteile aufteile (eins ins hauptprojekt, eins in ein class library), dann kommt natürlich:
Warning: The dependency 'Interop.foo, Version=4.0.0.0, Culture=neutral' in project 'test' cannot be copied to the run directory because it would overwrite the reference 'Interop.foo, Version=5.0.0.0, Culture=neutral'.
Der Code in der Class Library funktioniert zwar trotzdem "einwandfrei", verwendet aber nur die neuere Version des COMs aus dem Hauptprojekt...
Jemand ne Idee? (evtl. irgdw. in Unterverzeichnisse wurschteln?!)
Fehlen noch Infos?
edit: das class library projekt is als referenzverweis im hauptprojekt eingefügt
Ich hab da gerade ein Problem...
und zwar will ich in einem Testprogramm 2 (gleiche!) COMs in verschd. Versionen einfügen...
Direkt geht natürlich nicht, Module unterstützt Visual Studio nicht, und wenn ich die 2 Programmteile aufteile (eins ins hauptprojekt, eins in ein class library), dann kommt natürlich:
Warning: The dependency 'Interop.foo, Version=4.0.0.0, Culture=neutral' in project 'test' cannot be copied to the run directory because it would overwrite the reference 'Interop.foo, Version=5.0.0.0, Culture=neutral'.
Der Code in der Class Library funktioniert zwar trotzdem "einwandfrei", verwendet aber nur die neuere Version des COMs aus dem Hauptprojekt...
Jemand ne Idee? (evtl. irgdw. in Unterverzeichnisse wurschteln?!)
Fehlen noch Infos?
edit: das class library projekt is als referenzverweis im hauptprojekt eingefügt
Zuletzt bearbeitet:
flybyray
Vice Admiral Special
Ich bin mir nicht ganz sicher ob dir das weiter hilft. Aber lies das mal durch.
extern alias
.
EDIT :
.
Dort steht auch genau das beschreieben was du erwähnst, dass nur eine (bei dir die neuere Version) verwendet wird. Da erfolgt eine kopier Operation(replace) der dll.
extern alias
.
EDIT :
.
Dort steht auch genau das beschreieben was du erwähnst, dass nur eine (bei dir die neuere Version) verwendet wird. Da erfolgt eine kopier Operation(replace) der dll.
danke schonmal für die antwort, ich glaube aber nicht dass sie mir weiterhilft, weil es in dem beispiel um class libraries geht, ich jedoch ja eigtl. 2 gleichnamige COMs habe.
diese werden ja nicht via using eingebunden...
falls ich etwas falsch verstanden habe, bitte korrigieren
diese werden ja nicht via using eingebunden...
falls ich etwas falsch verstanden habe, bitte korrigieren
flybyray
Vice Admiral Special
hast du das ausprobiert?
also ich meine dass es so funktioniert.
Wieso sollte da ein Unterschied zwischen ClassLibray und COM sein?
Kannst du mir deine COM Classen/Objekte (sonste was) zukommen lassen? (pm)
.
EDIT :
.
Ok ich denke ich habe mir jetzt selber so ein Projekt erstellen können wie du das gemacht hast.
Jedoch komme ich auch zu keiner Lösung. Ich meine sogar dass bei MSDN keine solche Möglichkeit aufgelistet wird.
Vermutlich muss alles kompliziert durch delegierende Funktionen gelöst werden oder vollkommen dynamisch zur Laufzeit eingebunden und abgefragt werden.
Dazu habe ich keinen Bock mehr!
Wenn jemand anders noch was weiß wäre ich auch froh hierüber etwas zu erfahren.
also ich meine dass es so funktioniert.
Wieso sollte da ein Unterschied zwischen ClassLibray und COM sein?
Kannst du mir deine COM Classen/Objekte (sonste was) zukommen lassen? (pm)
.
EDIT :
.
Ok ich denke ich habe mir jetzt selber so ein Projekt erstellen können wie du das gemacht hast.
Jedoch komme ich auch zu keiner Lösung. Ich meine sogar dass bei MSDN keine solche Möglichkeit aufgelistet wird.
Vermutlich muss alles kompliziert durch delegierende Funktionen gelöst werden oder vollkommen dynamisch zur Laufzeit eingebunden und abgefragt werden.
Dazu habe ich keinen Bock mehr!
Wenn jemand anders noch was weiß wäre ich auch froh hierüber etwas zu erfahren.
hab ganz vergessen zu posten dass ich das problem inzwischen gelöst habe...
in Visual Studio direkt ist es leider nicht möglich, aber man kann die COM-DLLs manuell erstellen, und da auch nicht nur den namen der output-dll bestimmen, sondern auch den namen des namespaces...
dies funktioniert über den .NET type library importer:
tlbimp.exe <com-dll> /out:<output-dll> /namespace:<output-namespace>
jetzt muss man im projekt nur noch die output-dll direkt referenzieren... et voilà,
keine probleme mehr...
edit: http://msdn.microsoft.com/de-de/library/tt0cf3sx(VS.80).aspx
in Visual Studio direkt ist es leider nicht möglich, aber man kann die COM-DLLs manuell erstellen, und da auch nicht nur den namen der output-dll bestimmen, sondern auch den namen des namespaces...
dies funktioniert über den .NET type library importer:
tlbimp.exe <com-dll> /out:<output-dll> /namespace:<output-namespace>
jetzt muss man im projekt nur noch die output-dll direkt referenzieren... et voilà,
keine probleme mehr...
edit: http://msdn.microsoft.com/de-de/library/tt0cf3sx(VS.80).aspx
Zuletzt bearbeitet:
ja, im endeffekt schon... mein problem war ja, dass ich nicht mal so weit gekommen bin, dass die namespaces in konflikt gekommen wären (hätte man auch über ein separates projekt, dass ich schon angelegt hatte, umgehen können), sondern dass die DLLs gleichnamig waren, und somit das Copy Local natürlich gemeckert hat dass es die DLLs nicht ins Run Dir kopieren kann...
mit dem manuellen erstellen kann man den dateinamen festlegen, und glücklicherweise auch den namespace, so dass ich jetzt alles in einem projekt untergebracht hab.
rein theoretisch müsste man den namespace aber nicht umändern, dann muss man allerdings mit verschd. projekten arbeiten, um verschd. referenzen setzen zu können.
mit dem manuellen erstellen kann man den dateinamen festlegen, und glücklicherweise auch den namespace, so dass ich jetzt alles in einem projekt untergebracht hab.
rein theoretisch müsste man den namespace aber nicht umändern, dann muss man allerdings mit verschd. projekten arbeiten, um verschd. referenzen setzen zu können.
Ähnliche Themen
- Antworten
- 42
- Aufrufe
- 4K