Benutzer mit den meisten Antworten
Unterschiedliche Ergebnisse beim Builden auf verschiedenen Systemen?

Frage
-
Hi,
ich habe ein Excel Addin in Form einer dll in C# geschrieben und habe zwei Computer A und B. Builde ich die Lösung auf A mit VS Premium 2010 dann funktioniert das Addin nur in A korrekt, aber nicht in B. Builde ich in B mit VS Express 2010 dann funktioniert es in A und B. Ich habe darauf geachtet, dass die gleichen Buildeigenschaften jeweils benutzt werden.
Hat jemand eine Ahnung woran das liegen könnte? Vielleicht generelle Hinweise/Links, was bei diesem Builden geschieht und mit was mein Problem zusammenhängen könnte?
Antworten
-
Hallo Tyrex01,
Was genau verstehst Du unter "korrekt"?
Kannst Du ein minimales Projekt hochladen (z.B. auf SkyDrive), damit wir Dein Problem besser nachvollziehen können?
Verwendest Du auf Computer A bzw. auf Computer B verschiedene Office-Versionen?
Ist Dein Target-Framework .NET 4.0?
Welche Framework-Versionen sind auf den Zielrechnern installiert?
Verwendest Du VSTO?
Wie installierst Du das Add-In?Gruss
Marcel- Als Antwort markiert Tyrex01 Dienstag, 1. Februar 2011 11:42
Alle Antworten
-
Hallo Tyrex01,
Was genau verstehst Du unter "korrekt"?
Kannst Du ein minimales Projekt hochladen (z.B. auf SkyDrive), damit wir Dein Problem besser nachvollziehen können?
Verwendest Du auf Computer A bzw. auf Computer B verschiedene Office-Versionen?
Ist Dein Target-Framework .NET 4.0?
Welche Framework-Versionen sind auf den Zielrechnern installiert?
Verwendest Du VSTO?
Wie installierst Du das Add-In?Gruss
Marcel- Als Antwort markiert Tyrex01 Dienstag, 1. Februar 2011 11:42
-
Hi Marcel,
deine Fragen haben mein Problem erstmal gelöst, wenngleich ich immer noch nicht weiß, warum es dieses Problem gibt: Zuvor hatte ich als Zielframework .NET 3.5 bei jeweils beiden Rechnern und daraufhin die Lösung erstellt. Wenn ich auf Rechner A nun das Zielframework .NET 4.0 benutze dann funktioniert das Tool bei A und B (Tool funktioniert auf System B nicht, wenn .NET 2.0 oder .NET 3.5 ausgewählt wurde).
Zu deinen Fragen (Minimalprojekt hochladen ist ohne Weiteres etwas schwer, da Teil eines größeren Paketes):
- nicht korrekt heißt: Bei einer speziellen Methode (nicht bei allen bereitgestellten), die von einer Zelle aufgerufen wird, wurde nicht der korrekte Wert zurückgeliefert, sondern es erscheint in der Zelle Fehler "#WERT!"
- Computer A hat Office 2010 64bit, Computer B hat Office 2007 32bit
- bei beiden System ist .NET 4.0 installiert
- kein VSTO, das Addin ist ein Automation Addin welches auch das IDTExtensibility2 Interface implementiert
- Addin (dll) wird installiert über regasm.exe und Eintrag in der registry (alternativ zum registry-rumfuchteln kann man das addin auch direkt in der excel applikation auswählen und aktivieren).
Falls mir jemand darüberhinaus weitere Informationen geben kann zur Natur dieses Problems (Stichwort Target-Framework beim Builden?) dann interessiert mich das natürlich sehr.
VG Tyrex
- Bearbeitet Tyrex01 Dienstag, 1. Februar 2011 11:49 Infos vergessen
-
Hi Tyrex,
Eine .NET-Assembly wird standardmäßig mit jener .NET Framework-Version geladen, für die sie erstellt wurde. Dass auf beiden Rechnern .NET 4.0 installiert ist, bedeuten nicht implizit, dass eine .NET 3.5 Assembly auch über die neue CLR geladen wird, wenn auch andere Frameworkversionen installliert sind.
Für v.1.1 Assemblies war die Lade-Policy der CLR so, dass bei installierter v2.0 CLR die Ausführung der Assembly implizit über die neue CLR lief. Unter .NET 4.0 hingegen muss in der Konfigurationsdatei angegeben werden, mit welchem Framework und mit welcher Aktivierungspolicy geladen werden soll. Erfolgt diese Angabe nicht, so wird die Assembly mit der CLR-Version geladen für die sie erstellt wurde.
Bei .NET Office Add-ins (verwaltete COM Add-ins inbegriffen) wird es noch etwas komplizierter, da hier erst ab v.4.0 ein echtes "side-by-side in-process"-Zusammenleben verschiedener Versionen möglich ist. Vielleicht findest Du den unten angegebenen Artikel in diesem Zusammenhang interessant!
Jesse Kaplan, Luiz Fernando Santos: In-Process Side-by-Side
http://msdn.microsoft.com/en-us/magazine/ee819091.aspxGruss
Marcel