2013-09-03 9 views
5

Opracowałem Excel XLL przy użyciu ExcelDNA i C#. Jestem już na etapie, w którym chciałbym rozpocząć testowanie wdrożenia, ale nie mogę znaleźć wielu informacji, które faktycznie zapewniają czynności, które działają.Jak wdrożyć dodatek Excel XLL i automatycznie zarejestrować dodatek w programie Excel

Mój projekt został opracowany jako biblioteka klas z odniesieniami ExcelDna. W pliku .dna mam poniższy kod, który zapakuje wszystkie zasoby do spakowanej wersji XLL (tj. Atrybutu Pack = "true").

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

chciałbym wdrożyć zapakowany xll na komputerze docelowym w ścieżce:

%APPDATA%\Microsoft\AddIns 

Aby automatycznie zarejestrować xll z Excela, muszę dodać klucz rejestru, który zależy od wersja programu Excel, którą posiada użytkownik.

Na przykład, na moim komputerze (Windows 7 64 bit z programu Excel 2007 32-bit), to muszę dodać klucz rejestru do następującej ścieżki:

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

Kluczem byłby typ REG_SZ z nazwa OPEN (lub OPEN1, OPEN2, itp.) i wartość /R "ExcelXLL-packed.xll"

Mam jednak 2 problemy. Pierwszy polega na określeniu, która wersja programu Excel musi uzyskać poprawną ścieżkę, a druga to określenie poprawnej wersji OPEN, którą muszę utworzyć (na przykład, jeśli użytkownik ma już OPEN, OPEN1 i OPEN2, to ja utworzy klucz OPEN3).

Próbuję wykonać instalację przy użyciu projektu instalacji i wdrażania lub projektu InstallShield LE i nie mogę ustalić, jak to zrobić. Czy ktoś wie, jak to zrobić lub lepszy sposób to zrobić?

EDIT 1:

Zrobiłem wiele badań na ten temat i spojrzał na kilka okien instalatorów.

W pakiecie i instalacji oraz InstallShield LE, mogę uzyskać instalację/odinstalowanie do pracy poprzez umieszczenie klasy instalatora w mojej bibliotece klas i powiązanie wyników projektu z instalacją. W tym podejściu zajmuję się wstawianiem/usuwaniem klucza rejestru przy użyciu klasy instalatora. Problem polega na tym, że użytkownik musi najpierw odinstalować przed uruchomieniem nowej instalacji (bez możliwości aktualizacji).

Pobrałem wersję demonstracyjną Setup Factory i mogę zainstalować/zaktualizować, ale nie mogę wykonać sprawdzenia struktury (nie jest dostarczany z wersją demo). Ponadto odinstalowanie się nie powiedzie (chociaż być może uda mi się to usprawnić).

Jestem zainteresowany wykorzystaniem instalatora WiX, ale chciałbym się dowiedzieć, czy ktoś ma próbkę wykonania wdrożenia przy użyciu WiX. Chciałbym również wiedzieć, czy muszę użyć klasy instalatora lub czy istnieje inny sposób obsługi wyszukiwania klucza OPEN [n] w HKCU \ Software \ Microsoft \ Office [Version] .0 \ Excel \ Options. Gdybym używał wyjścia projektu do włączenia klasy instalatora, potrzebuję 2 oddzielnych katalogów docelowych (jeden w Program Files na podstawowy wynik projektu i jeden w% appdata% \ Microsoft \ AddIns dla spakowanego XLL).

Każda pomoc jest bardzo doceniana.

Dzięki,

Lee

Odpowiedz

2

Używając IsWix i Wix 3.7, udało mi się rozwiązać ten problem.

Przydatne linki do sposobu rejestrowania składników są następujące:

do generowania klasy C# do obsługi systemu Windows Installer niestandardowych działań: 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

Przez ustawienie właściwości pliku CustomAction.config do zawartości WIX Custom Actions built for .Net Framework 4.0 does not work? Ways to resolve?

EDIT 1:

Dla ogólnej wiedzy na temat WiX (bardzo ważne) http://channel9.msdn.com/blogs/scobleizer/wix-team-the-most-used-piece-of-software-at-microsoft-and-its-open-source#Page=2

5

Aby wykryć Excel 32-bitowe vs 64-bitowy, można sprawdzić rejestr: Detect whether Office is 32bit or 64bit via the registry

otwartej, OPEN1, Open2 itp zazwyczaj potrzebują Akcja niestandardowa w skrypcie instalacyjnym, która wylicza klucze.

+0

Hi Govert, proszę zobaczyć moje Edycja 1 powyżej, kiedy zorientowali się, co jest potrzebne, ale zostały próby znalezienia instalatora, który wykona opcje instalacji, aktualizacji i odinstalowania. Zasadniczo potrzebuję instalatora, który pozwoli mi nadpisać jedną instalację nowszą instalacją bez zmuszania użytkownika do deinstalacji. –

Powiązane problemy