Laden...

Dokumentbezogene Anwendung - Excel 2003 - Bereitstellung für andere PCs

Erstellt von Ruben vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.337 Views
Ruben Themenstarter:in
61 Beiträge seit 2009
vor 13 Jahren
Dokumentbezogene Anwendung - Excel 2003 - Bereitstellung für andere PCs

Hallo zusammen,

derzeit versuche ich nur eines:
Eine dokumentbezogene Anwendung für Excel 2003 zu kompilieren und auszuführen,
welche lediglich eine MessageBox beim Start ausgibt. (testweise - denndas würde mir schon reichen)

Auf meinem Entwicklungsrechner geht das ohne Probleme - auch die CasPol-Registrierung führe ich für die Assembly durch.

Hier eine gegenüberstellung von Entwicklungsrechner und Zielrechner:
Entwicklungs-PC

  • Windows XP SP 2
  • Visual Studio 2008 Team System
  • VSTO
  • Office 2003 (Word, Excel, Power Point, ...)
  • .Net 3.5
  • Administrator-Rechte

Ziel-PC

  • Windows XP SP 2
  • Office 2003
  • .Net 3.5
  • eingeschränkte Benutzerrechte

Folgenden Fehler erhalte ich auf meinen Entwicklungsrechner, wenn ich nicht die CasPol-Registrierung durchgeführt habe:
(Fehlermeldung als Screenshoot im Anhang)


[B]Die Office-Dokumentanpassung ist nicht verfügbar.[/B]

Anpassungsassembly wurde nicht gefunden oder konnte nicht geladen werden.
Sie können das Dokument aber weiter bearbeiten und speichern.
Wenden Sie sich für weitere Informationen an den Administrator oder den Autor dieses Dokuments.

"Details" ----  "OK"

Nach der Caspol-Registrierung funktioniert alles so wie es soll.

Auf dem Ziel-PC hingegen sieht es völlig anders aus.
Egal ob mit oder ohne Caspol-Registrierung - immer kommt dieselbe Fehlermeldung:
(Fehlermeldung als Screenshoot im Anhang des nächsten Beitrags)


[B]Microsoft Office[/B]

Die Assembly * konnte in  nicht gefunden, oder konnte nicht geladen werden.

Sie können das Dokument jedoch weiter bearbeiten und speichern.
Kontaktieren Sie Ihren Administrator oder den Autor dieses Dokuments, um weitere Unterstützung zu erhalten.

"OK"

Leider bin ich mir nicht im klaren was zu tun ist.
Muss etwa Visual Studio und VSTO installiert werden?
Nach Rainbird ist das VSTO vorwiegend bei Add-Ins notwendig und ggf. sogar kostenpflichtig.

Ich habe auch ausprobiert, ob ich in Visual Studio (auf dem Entwicklungsrechner) beim Erstellen sage, dass die Assemblies, welche zum VSTO gehören, mitgegeben werden sollen (Lokale Kopie = TRUE), aber auch dann kam dieselbe Fehlermeldung beim Öffnen der .xls-Datei. Wobei dieser Trick z.B. auf einem Rechner mit .Net 2.0 funktioniert habt, bei dem die Anwendung die notwendigen .Net 3.5 Assemblies mitbekommen hat.

Gibt es eine Möglichkeit wie ich kurz und schlank meine Lösung auf verschiedenen Rechnern zum Einsatz bringen kann ohne das überall Software installiert werden muss?
Schließlich geht es nur um eine Vereinfachung einer Excel-Datei, welche am Ende verschiedene Erlöse und Kosten berechnen soll. Eine Sache die theoretisch auch unter VBA umsetzbar sein sollte. Aber ich bin ein C#-Programmierer und VBA scheint nichtmal .Net fähig zu sein.

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.

Ruben Themenstarter:in
61 Beiträge seit 2009
vor 13 Jahren

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.

Gelöschter Account
vor 13 Jahren

hau mal deine assembly testweise in den GAC rein.

Ruben Themenstarter:in
61 Beiträge seit 2009
vor 13 Jahren

Leider erfolglos. Fehler:


Microsoft (R) .NET Global Assembly Cache Utility.  Version 1.1.4318.0
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

Failure adding assembly to the cache:   Zugriff verweigert


C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>

Sieht so aus als könnte ich das mit den eingeschränkten Benutzerrechten nicht machen.
Deshalb hoffe ich auf eine Lösung, die man schnell auf vielen verschiedenen PCs einsetzen kann. Denn wie gesagt: Über Makros könnte ich das auch hinbekommen nur muss ich dann die objektorientierte Ebene verlassen und in VB (vor allem VBA) komme ich nicht ganz so gut zurecht. -.-

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.

Ruben Themenstarter:in
61 Beiträge seit 2009
vor 13 Jahren

Vielleicht hilft es weiter, aber habe auch schon versucht über folgenden Code das zu lösen, den Code habe ich irgendwo bei der MSDN mal gefunden.


using System;
using Microsoft.VisualStudio.Tools.Applications.Runtime;

namespace ChangeAssemblypathApp
{
    class Program
    {
        [STAThread()]
        static void Main(string[] args)
        {
            ServerDocument sd = null;

            try
            {
                sd = new ServerDocument("documentPath");
                sd.AppManifest.Dependency.AssemblyPath = "assemblyPath";
                sd.Save();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (sd != null)
                    sd.Close();
            }
        }
    }
}

In den Eigenschaften stoße ich auf das Bild im Anhang

Falls es wirklich nicht geht (da VSTO einfach installiert werden muss), kann mir jemand sagen, wie ich am besten meinen Code (der in der ThisWorkbook-Klasse steht) so ändern kann, dass ich das z.B. über eine Anwendung oder ähnliches ausführe? Es soll sich ja nur auf die eine Datei beziehen.

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.