2008-12-19 6 views
6

Ich habe ein sehr einfaches Setup-Projekt, das drei DLLs in den GAC kopiert. Das ist alles, was es zu tun hat. Es funktioniert gut in XP, aber auf einem Vista-Computer, es ausgibt, dass es nicht in die Datei schreiben und Berechtigungen überprüfen kann. Ich bin mir sicher, dass dies etwas mit Unsinn in Vista zu tun hat, aber ich bin mir nicht sicher, wie ich damit umgehen soll.Welche zusätzlichen Schritte nehmen Sie bei der Erstellung von MSI-Installationsprogrammen für Vista vor?

Hat jemand anderes das erlebt und wie haben Sie es überwunden?

Antwort

1

Wenn Sie Windows Installer verwenden, setzen Sie Ihre Baugruppen in den speziellen Ordner Global Assembly Cache? Das hat bei Vista und Windows 7 immer funktioniert. Es gibt keine Notwendigkeit, GACUtil oder irgendetwas anderes zu verwenden, einfach die Assemblys in den richtigen Ordner im Installer-Projekt einfügen.

1

Sie verwenden die gacutil.exe, um die DLLs zu installieren? Oder kopierst du einfach die Dateien?

Jedenfalls sollte GAC für benutzerdefinierte DLLs vermieden werden, es sei denn, sie werden von vielen Anwendungen verwendet. Halten Sie die DLLs in der Nähe/lokal der Anwendung: es kostet Sie nur etwas Speicherplatz, und es ermöglicht Ihnen, einfache Xcopy-Bereitstellung zu verwenden.

+0

Danke für die Antwort, aber Sie können mir den Vortrag über die Verwendung der GAC ersparen. Ich bin mir bewusst, wann und wann ich es nicht benutzen soll. In diesem Fall muss ich den GAC verwenden. Deshalb habe ich die Frage gestellt und einen Installer zur Automatisierung des Prozesses erstellt. – Kilhoffer

+0

Sorry, aber das sagen dir sogar die MS-Richtlinien. Wie auch immer, downmodding me (wer auch immer es war) wird das Problem für dich nicht lösen, oder? Habe ich nicht eine Frage gestellt, die du nicht beantwortet hast? i.o.w .: Verwenden Sie gacutil.exe? –

+0

Für die Aufzeichnung, habe ich dich nicht abgestimmt. Um Ihre Frage zu beantworten, nein, ich habe Gacutil nicht direkt verwendet. Das MSI-Installationsprogramm erledigt das für Sie. Ich spreche über den Aufbau eines Installationsprogramms, das einfach drei Assemblies für Sie bereitstellt. – Kilhoffer

0

Ich hatte einige (3rd Party) MSI's, die nicht korrekt installiert werden, es sei denn, ich erzwinge erhöhten Modus von Anfang an, auch wenn sie später eine UAC-Eingabeaufforderung zeigen.

Fehlerbehebung ... Ich vermute, dass Sie von einem Administratorkonto installieren. Aber, ist UAC aktiviert? Wenn dies der Fall ist, erhalten Sie die Aufforderung zur UAC-Erhöhung? Versuchen Sie, das MSI-Paket im erhöhten Modus auszuführen, um zu sehen, ob es funktioniert. Von einer erhöhten Eingabeaufforderung:

msiexec /i setup.msi 
0

Welchen Compiler verwenden Sie, um die MSIs zu erstellen? Nach den letzten Wochenenden Spaß kann ich ein Experte bei MSI vs Vista Probleme sein :)

Bei der Verwendung von VC2003 oder VC2005 gibt es verschiedene Probleme abhängig von der Compiler-Version.

Wenn 2005, müssen Sie das Service Pack und das Vista Service Pack installiert haben. Das könnte dein Problem lösen.

Wenn dies fehlschlägt, können Sie sie mit einer benutzerdefinierten Aktion in den GAC einfügen. Beachten Sie jedoch, dass 2005 ein Fehler vorliegt, bei dem das Bit "no_impersonate" falsch gesetzt ist. Sie müssen dieses Bit selbst setzen, indem Sie entweder ein Skript oder orca.exe verwenden.