2010-04-28 14 views
6

Sto riscontrando alcuni problemi nella creazione di un file di installazione per il componente aggiuntivo Outlook 2007.Installazione di VSTO (componente aggiuntivo di Outlook) Distribuzione (C#)

Il problema è che il componente aggiuntivo deve avere una voce di registro che fa riferimento a manifest (http://msdn.microsoft.com/en-us/library/bb386106.aspx). Il progetto crea un file manifest che appare nella mia cartella bin \ debug. Tuttavia, nel mio progetto di installazione, se esco e aggiungo l'output del progetto, il manifest non viene mai elencato come parte dell'output. Stranamente, il programma di installazione crea una voce di registro che fa riferimento al mio manifest nella mia cartella bin \ debug ma questo non è adatto poiché quella cartella non è disponibile sulle macchine in cui verrà distribuito.

Grazie.

====================================

per chi fosse interessato, alcuni retroscena problemi.

  1. Se utilizzo l'output del progetto nella configurazione, il componente aggiuntivo VSTO si installa correttamente la prima volta. Se disinstalla e reinstalla utilizzando la stessa configurazione, non si installa correttamente. Se ricostruisco la configurazione, si installa di nuovo correttamente (in altre parole, installa solo la prima volta che viene eseguita un'installazione).
  2. Ho corretto (1) ma rimuovendo l'output del progetto dal mio progetto di installazione e aggiungendo invece i file manualmente (la mia dll + il manifest) e quindi aggiornando le chiavi del Registro di sistema per puntare al manifest aggiunto. Questa volta, posso disinstallare e reinstallare quanto voglio con la stessa configurazione. Tuttavia, per qualche motivo, l'installazione crea due voci di registro, una che ho inserito manualmente che si riferisce al manifest che ho incluso e una che viene automaticamente referenziata e punta al manifest nella mia cartella bin \ debug. Non riesco a rimuovere questo secondo set di voci di registro in quanto non appaiono in nessun punto del mio progetto di installazione. Il problema nel lasciarli lì è che il componente aggiuntivo esegue ogni comando due volte (poiché è registrato due volte).

dispari, eh?

+0

Normalmente VSTO viene installato tramite ClickOnce, per fare un MSI ci sono molti passaggi da seguire per farlo funzionare. ClickOnce non è un'opzione? – 76mel

+0

Non ho mai fatto clic una volta, ma non penso che sia un'opzione. Al momento non vogliamo pubblicare su un server – i8abug

+0

Fare clic una volta È possibile pubblicare solo su un'unità locale o condividere ovunque, ma per l'installazione msi iniziare a leggere http://blogs.msdn.com/mshneer/archive/2007/ 09/04/deploying-your-vsto-add-in-all-users-part-i.aspx – 76mel

risposta

5

ho trovato questo white-paper Microsoft VSTO per Office 2007 componente aggiuntivo schieramento molto utile: http://msdn.microsoft.com/en-us/library/cc563937(office.12).aspx
(inizialmente ho collegato a un altro documento che è anche grande, ma si applica al 2003 + 2007, che è un po 'diversa : http://msdn.microsoft.com/en-us/library/bb332052.aspx)
In particolare sulla questione del manifest, ho scoperto nel modo più rigido che quando la chiave del Registro di sistema per il componente aggiuntivo aveva lo stesso nome del componente aggiuntivo stesso, per qualche misterioso motivo durante la compilazione, il Manifest il valore veniva sostituito silenziosamente dal manifest VSTO al manifest del componente aggiuntivo.

+3

Ecco la versione aggiornata (VSTO 2010) del white paper: http://msdn.microsoft.com/en-us/library/ff937654.aspx – bernhof

Problemi correlati