Nachlese zum WebCast "Managed SmartTags mit VSTO 2.0"


Ich hatte im WebCast versprochen, den gezeigten Code und die PPT nachzureichen. Hier sind beide, versehen mit ein paar zusätzlichen Informationen zum Deployment solcher Lösungen:



In der Präsentation habe ich noch 2 Slides nachgetragen, die dem Thema Depoloyment gerecht werden. Visual Studio geht nämlich zuerst einmal davon aus, das sowohl die Assembly als auch das Dokument im gleichen (lokalen) Ordner zu liegen kommen. Dann hat man allerdings nicht die Vorteile von zentralem Deployment und Updates. Die Verbindung vom Dokument zur Assembly erfolgt über ein sog. Application Manifest, welches im Dokument eingebettet ist. Möchte man die Assembly beispielsweise auf einen Server legen, so muß man dieses Manifest so anpassen, daß der Zeiger im Dokument auf die neue Lokation zeigt.



Das kann man mittels der ServerDocument-Klasse (welche auch bei DataIslands Verwendung findet) tun. Folgender Code ist notwendig, um den Pfad anzupassen:


Dim sd As ServerDocument = Nothing
Try
    sd = New ServerDocument("<Voller Pfad zum Dokument>")
    sd.AppManifest.Dependency.AssemblyPath = "<Voller Pfad zur Assembly auf dem Server>"
    sd.Save()
Catch ex As System.Exception
    ....
Finally
    If Not sd Is Nothing Then
        sd.Close()
    End If
End Try


Hat man diese Änderung vorgenommen, so sollte man CAS (Code Access Security) konfigurieren. Man kann dies tun basierend auf dem Pfad zur Assembly bzw. einem Strong Name oder digitalen Zertifikat, mit dem die Assembly signiert ist. generell muß man dem Dokument das Recht "Execution" und der Assembly "Full Trust" (da steckt COM Marshalling dahinter, wegen Office) geben, damit dies funktioniert. Signieren ist immer besser, da man dann nur einmal auf den Clients einen sog. Trusted Publisher einrichten muß. das bedeutet, daß der öffentliche Teile des Herausgeberzertifikats im lokalen Certificate Store unter "Trusted Publishers" eingetragen ist.


 

Comments (0)

Skip to main content