2013-09-03 24 views
5

Ho sviluppato un Excel XLL utilizzando ExcelDNA e C#. Sono al punto in cui vorrei iniziare a testare la distribuzione, ma non riesco a trovare molte informazioni che in realtà forniscono passaggi che funzionano.Come distribuire un componente aggiuntivo XLL Excel e registrare automaticamente il componente aggiuntivo in Excel

Il mio progetto è stato sviluppato come una libreria di classi con riferimenti ExcelDna. Nel file .dna, ho il seguente codice che comprime tutte le risorse in una versione compressa dell'XLL (cioè l'attributo Pack = "true").

<DnaLibrary Name="ExcelXLL" RuntimeVersion="v4.0" Language="C#"> 
    <ExternalLibrary Path="ExcelXLL.dll" LoadFromBytes="false" Pack="true" /> 

vorrei distribuire il XLL imballato al computer di destinazione nel percorso:

%APPDATA%\Microsoft\AddIns 

Per registrare automaticamente il XLL con Excel, ho bisogno di aggiungere una chiave di registro che dipende la versione di Excel che l'utente ha.

Per esempio, sul mio computer (Windows 7 a 64 bit in esecuzione Excel 2007 a 32-bit), avrei bisogno di aggiungere una chiave di registro per il seguente percorso:

HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options\ 

La chiave sarebbe tipo REG_SZ con il nome OPEN (o OPEN1, OPEN2, ecc.) e il valore /R "ExcelXLL-packed.xll"

Ho 2 problemi però. Il primo è nel determinare quale versione di Excel deve essere ottenuta dall'utente il percorso corretto e la seconda è determinare la versione OPEN corretta che ho bisogno di creare (ad esempio, se l'utente ha già OPEN, OPEN1 e OPEN2 poi I creerebbe una chiave OPEN3).

Sto provando a eseguire l'installazione utilizzando il progetto di installazione e distribuzione o un progetto InstallShield LE e non è possibile determinare come procedere. Qualcuno sa come fare questo o un modo migliore per farlo?

EDIT 1:

Ho fatto un grande sforzo di ricerca su questo e guardato diverse di installazione di Windows.

In Package and Deployment e InstallShield LE, posso far funzionare l'installazione/disinstallazione inserendo una classe di installazione nella mia libreria di classi e raggruppando l'output del progetto con l'installazione. In questo approccio, gestisco l'inserimento/rimozione della chiave di registro utilizzando la classe di installazione. Il problema che ho è che l'utente deve disinstallare prima di eseguire una nuova installazione (nessuna capacità di aggiornamento).

Ho scaricato la versione demo di Setup Factory e posso eseguire l'installazione/l'aggiornamento per funzionare ma non posso eseguire il controllo del framework (non fornito con la demo). Inoltre, la disinstallazione non riesce (sebbene possa essere in grado di farlo funzionare con ulteriori indagini).

Sono interessato all'utilizzo del programma di installazione WiX, ma vorrei sapere se qualcuno ha un esempio di come eseguire la distribuzione utilizzando WiX. Vorrei anche sapere se ho bisogno di usare la classe di installazione o se c'è un modo diverso per gestire la ricerca della chiave OPEN [n] sotto HKCU \ Software \ Microsoft \ Office [Versione] .0 \ Excel \ Options. Se dovessi utilizzare l'output del progetto per abilitare la classe di installazione, allora ho bisogno di avere 2 directory di destinazione separate (una sotto Program Files per l'output di progetto di base e una sotto% appdata% \ Microsoft \ AddIns per l'XLL impacchettato).

Qualsiasi aiuto è molto apprezzato.

Grazie,

Lee

risposta

2

Utilizzando IsWix e Wix 3.7, sono riuscito a risolvere questo problema.

Link utili per il modo di registrare i componenti sono i seguenti:

Per la generazione di una classe C# per gestire azioni di Windows Installer personalizzati: http://www.codeproject.com/Articles/132918/Creating-Custom-Action-for-WIX-Written-in-Managed?fid=1599130&df=90&mpp=25&noise=3&prof=False&sort=Position&view=Quick&spc=Relaxed&select=4131367&fr=1#xx0xx

http://blogs.msdn.com/b/jschaffe/archive/2012/10/23/creating-wix-custom-actions-in-c-and-passing-parameters.aspx

per impostare la proprietà del file CustomAction.config al contenuto WIX Custom Actions built for .Net Framework 4.0 does not work? Ways to resolve?

EDIT 1:

Per conoscenza generale WiX (Molto importante) http://channel9.msdn.com/blogs/scobleizer/wix-team-the-most-used-piece-of-software-at-microsoft-and-its-open-source#Page=2

5

Per rilevare Excel a 32 bit vs 64 bit, è possibile controllare il registro: Detect whether Office is 32bit or 64bit via the registry

Per OPEN, aperta1, Open2 ecc di solito è necessario un'azione personalizzata nello script di installazione che enumera le chiavi.

+0

Hi Govert, si prega di vedere il mio Edit 1 di cui sopra, come ho capito ciò che è necessario, ma hanno cercato di trovare una programma di installazione che eseguirà l'installazione, l'aggiornamento e le opzioni di disinstallazione. Essenzialmente, ho bisogno di un programma di installazione che mi consenta di sovrascrivere un'installazione con un'installazione più recente senza costringere l'utente a disinstallare prima. –

Problemi correlati