2009-07-17 7 views
2

Ich postete hier einen Artikel (How do I set permissions on my VSTO outlook add-in?) und ich konnte mein Installationsprogramm erstellen. Ich dachte, sobald der Installer sich selbst gebaut hat, würde alles gut funktionieren.VSTO: Installiere ein Add-In zu Outlook Office 2003

Ich lag falsch. Es funktioniert auf etwa der Hälfte der PCs, auf denen ich das Installationsprogramm ausgeführt habe. Mein Problem ist, dass die andere Hälfte nicht funktioniert. Ich versuche, ein Add-In zu Outlook Office 2003 zu installieren.

Ich bin sogar so weit gegangen, die Schritte manuell mithilfe einer Batchdatei zu erstellen. Nichts scheint auf diesen PCs zu funktionieren und ich kann keinen gemeinsamen Nenner finden, den ich ausschließen kann oder in dem das VSTO Addin funktionieren wird.

Hier ist die Batch-Datei, die ich verwende. Was mache ich/mache ich nicht falsch damit?

Ich könnte wirklich eine VSTO-Experte Hilfe verwenden. Vielen Dank!!!!

BEARBEITEN Ich habe die Batch-Datei und die Registrierungseinstellungen geändert, um die letzten Aktualisierungen zu reflektieren. Ich habe auch den Fehlertext angehängt, der von den PCs kommt, die nicht funktionieren.

@echo off 

echo Installing Visual Studio for Office Runtime (SE 2005)... 
..\VSTO\vstor.exe 

echo Creating Directories... 
mkdir "c:\program files\Project Archiver" 

echo Installying Add-In... 
echo Copying files... 
xcopy /Y *.dll "c:\program files\Project Archiver" 
xcopy /Y *.manifest "c:\program files\Project Archiver" 

echo Setting Security... 
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe" -polchgprompt off 
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe" -u -ag All_Code -url "c:\program files\Project Archiver\ProjectArchiver.dll" FullTrust -n "Project Archiver" -d "Outlook plugin for archiving" 
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe" -u -ag All_Code -url "c:\program files\Project Archiver\Microsoft.Office.Interop.SmartTags.dll" FullTrust -n "Project Archiver" -d "Outlook plugin for archiving" 
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe" -polchgprompt on 

echo Loading Registry Values... 
"c:\program files\Project Archiver\VSTO_settings.reg" 

echo "That should do it." 
pause 

Ich nahm die Registrierungseinstellungen (erwähnt in der Batch-Datei oben) direkt von einem PC, an dem diese Anwendung arbeitete. Die VSTO Registry-Einstellungen Ich benutze sind:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\ProjectArchiver\CLSID] 
@="{27830B8D-F7A1-4945-AC4A-47661B9ED36D}" 

[HKEY_CLASSES_ROOT\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}] 
@="ProjectArchiver -- an addin created with VSTO technology" 

[HKEY_CLASSES_ROOT\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\InprocServer32] 
@=hex(2):25,00,43,00,6f,00,6d,00,6d,00,6f,00,6e,00,50,00,72,00,6f,00,67,00,72,\ 
    00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,4d,00,69,00,63,00,\ 
    72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,53,00,68,00,61,00,72,00,65,00,64,\ 
    00,5c,00,56,00,53,00,54,00,4f,00,5c,00,38,00,2e,00,30,00,5c,00,41,00,64,00,\ 
    64,00,69,00,6e,00,4c,00,6f,00,61,00,64,00,65,00,72,00,2e,00,64,00,6c,00,6c,\ 
    00,00,00 
"ManifestName"="ProjectArchiver.dll.manifest" 
"ThreadingModel"="Both" 
"ManifestLocation"="C:\\Program Files\\Project Archiver\\" 

[HKEY_CLASSES_ROOT\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\ProgID] 
@="ProjectArchiver" 

[HKEY_CLASSES_ROOT\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\Programmable] 

[HKEY_CLASSES_ROOT\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\VersionIndependentProgID] 
@="ProjectArchiver" 

[HKEY_CLASSES_ROOT\ProjectArchiver] 
@="" 





[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}] 
@="ProjectArchiver -- an addin created with VSTO technology" 

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\InprocServer32] 
@=hex(2):25,00,43,00,6f,00,6d,00,6d,00,6f,00,6e,00,50,00,72,00,6f,00,67,00,72,\ 
    00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,4d,00,69,00,63,00,\ 
    72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,53,00,68,00,61,00,72,00,65,00,64,\ 
    00,5c,00,56,00,53,00,54,00,4f,00,5c,00,38,00,2e,00,30,00,5c,00,41,00,64,00,\ 
    64,00,69,00,6e,00,4c,00,6f,00,61,00,64,00,65,00,72,00,2e,00,64,00,6c,00,6c,\ 
    00,00,00 
"ManifestName"="ProjectArchiver.dll.manifest" 
"ThreadingModel"="Both" 
"ManifestLocation"="C:\\Program Files\\Project Archiver\\" 

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\ProgID] 
@="ProjectArchiver" 

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\Programmable] 

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{27830B8D-F7A1-4945-AC4A-47661B9ED36D}\VersionIndependentProgID] 
@="ProjectArchiver" 

[HKEY_LOCAL_MACHINE\Software\Classes\ProjectArchiver] 
@="" 

[HKEY_LOCAL_MACHINE\Software\Classes\ProjectArchiver\CLSID] 
@="{27830B8D-F7A1-4945-AC4A-47661B9ED36D}" 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\Addins\ProjectArchiver] 
"Manifest"="C:\\Program Files\\Project Archiver\\ProjectArchiver.dll.manifest" 
"LoadBehavior"=dword:00000003 
"FriendlyName"="ProjectArchiver" 
"Description"="ProjectArchiver -- an addin created with VSTO technology" 
"CommandLineSafe"=dword:00000001 

Der Fehler, den ich bekommen ist:

konnte nicht Datei oder Assembly ‚laden Microsoft.Office.Interop.Outlook, Version = 11.0.0.0, Kultur = neutral, PublicKeyToken = 71e9bce111e9429c 'oder eine seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden. auf den PC, wo die Dinge nicht funktioniert hat, haben Sie die Registrierung überprüfen, um zu sehen, ob alle Einträge hinzugefügt richtig waren:

************** Exception Text ************** 
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified. 
File name: 'Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' 
    at ProjectArchiver.ThisAddIn.Initialize() 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.CreateStartupObject(EntryPoint entryPoint, Dependency dependency, Assembly objectAssembly) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ConfigureAppDomain() 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadAssembliesAndConfigureAppDomain(IHostServiceProvider serviceProvider) 
    at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadEntryPointsHelper(IHostServiceProvider serviceProvider) 

WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 



************** Loaded Assemblies ************** 
mscorlib 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.3082 (QFE.050727-3000) 
    CodeBase: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll 
---------------------------------------- 
Microsoft.VisualStudio.Tools.Applications.Runtime 
    Assembly Version: 8.0.0.0 
    Win32 Version: 8.0.50727.816 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualStudio.Tools.Applications.Runtime/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.Tools.Applications.Runtime.dll 
---------------------------------------- 
Microsoft.Office.Tools.Common 
    Assembly Version: 8.0.0.0 
    Win32 Version: 8.0.50727.816 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.Office.Tools.Common/8.0.0.0__b03f5f7f11d50a3a/Microsoft.Office.Tools.Common.dll 
---------------------------------------- 
System 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll 
---------------------------------------- 
System.Windows.Forms 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 
---------------------------------------- 
ProjectArchiver 
    Assembly Version: 1.0.0.0 
    Win32 Version: 1.0.0.0 
    CodeBase: file:///C:/Program%20Files/Callidus/Project%20Archiver/ProjectArchiver.DLL 
---------------------------------------- 
+0

Für Interessenten, ich habe alle Schritte bemerkte ich diese Arbeit zu übernehmen hatte zu bekommen: http://www.jerryandcheryl.net/jspot/2009/07/vsto-with-outlook-2003. html – Jerry

+0

Jerrys Link wurde verschoben http://jspot.jerryhanel.com/2009/07/21/vsto-with-outlook-2003/ – Keith

Antwort

3

Ok, also anscheinend wird das AddIn automatisch von Outlook deaktiviert. Eine andere Antwort mit einem etwas anderen Art:

Gehen Sie auf Start -> Systemsteuerung -> System -> Erweitert -> Umwelt Variablen -> Systemvariablen, und fügen Sie VSTO_SUPPRESSDISPLAYALERTS mit einem Wert von 0. Dies wird auf Fehlermeldungen angezeigt werden Bildschirm, im Gegensatz zu still den VSTO deaktivieren. Wenn Sie lieber über eine Protokolldatei verfügen möchten, fügen Sie VSTO_LOGALERTS hinzu und legen Sie 1 fest.

Hoffentlich wird dies Ihnen einige zusätzliche Details liefern, die uns helfen könnten, Ihr Problem zu lösen!

+1

Nachdem ich diesen Fehler gesehen habe, habe ich etwas entdeckt ... Obwohl IT schwor, dass die PIA automatisch auf jedem Rechner installiert wurde ... war es nicht. Ich habe das PIA-Installationsprogramm als Teil meines Installationsskriptes hinzugefügt, und obwohl es jetzt mehr Schaltflächen zum Klicken gibt, funktioniert es 100% der Zeit. VIELEN DANK, dass Sie mir helfen !! (ps für diejenigen, die suchen, finden Sie das PIA-Installationsprogramm für 2003 unter http://www.microsoft.com/downloads/details.aspx?familyid=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad&displaylang=en) – Jerry

+0

Ja, Tut mir leid, dass ich die Schritte nacheinander durchgehen muss, anstatt eine Antwort bereit zu haben, aber ich bin froh, dass du es geschafft hast ... gut gemacht! –

2

Um mit etwas trivial zu starten? Wurde beispielsweise die .bat-Datei unter einem Konto ausgeführt, das tatsächlich in HKEY_CLASSES_ROOT schreiben darf?

Sind auf diesen PCs Vista? Könnte es sein, dass sie die Office-Suite ohne UAC oder mit einem vollständigen Administratorkonto ausführen? In diesem Fall sollten die Einträge zu HKEY_LOCAL_MACHINE hinzugefügt werden.

bearbeiten

Ok, wenn Sie sicher sind, Dinge in der Registrierung richtig hinzugefügt werden, nächstes ist RegMon (oder procmon, wenn Sie dies bevorzugen). Starten Sie regmon, starten Sie die Office-Host-Anwendung und sehen Sie, wo es sich befindet, und suchen Sie nicht nach dem VSTO-Add-In. Beginnen Sie mit einem Filter, der auf Ihrem Add-In-Namen basiert, und erweitern oder verkleinern Sie ihn je nach Datenmenge.

+0

Danke für den Link. Ich habe mich verknotet, um das zu schaffen. Um Ihre Fragen zu beantworten: 1) Die Benutzer sind Administratoren auf ihren eigenen Boxen. 2) Ich habe Dinge von HKCU nach HKLM verschoben. 3) Seit Administratoren konnten sie auf HKCR schreiben. Ich habe diese Einträge auf mehreren PCs verifiziert. Immer noch ... kein Glück. Ich werde verrückt. – Jerry

+0

Nur überprüft die OS-Versionsnummer aller betroffenen PCs (wenn das hilft): Betriebssystem: XP Professional (5.1, Build 2600) Service Pack 2. Office-Version: Office Professional 2003 (Outlook 2003 ver 11.8206 .8221 SP3) – Jerry

+0

Ich habe RegMon verwendet, um zu sehen, was auf den PCs funktioniert, die funktionieren, im Gegensatz zu den PCs, die nicht funktionieren. Beide greifen auf dieselben Registrierungseinträge zu. Beide werden in gleicher Weise "ERFOLGREICH". Der einzige Unterschied ist, dass die PCs, die nicht sofort arbeiten, das LoadBehavior von 3 auf 2 setzen. (Deaktiviert). Habe ich die Berechtigungen in der CASPOL-Zeile richtig gesetzt ?? Ich gehe davon aus, dass ich das auf Microsoft Forum-Seiten gemacht habe. – Jerry