2013-09-03 13 views
5

ExcelDNA ve C# kullanarak bir Excel XLL geliştirdim. Uygulamayı test etmeye başlamak istediğim noktadayım, ancak gerçekten işe yarayan adımlar sağlayan çok fazla bilgi bulamıyorum.Excel XLL Eklentisi nasıl dağıtılır ve Excel'de Eklentiyi otomatik olarak kaydeder

Projem ExcelDna referansları ile bir Sınıf kitaplığı olarak geliştirildi. .dna dosyasında, tüm kaynakları XLL'in paketlenmiş bir sürümüne (yani, Pack = "true" özniteliğine) sığacak olan aşağıdaki kodum var.

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

ben yolundaki hedef makineye paketlenmiş XLL dağıtmak istiyorum:

otomatik, bir kayıt defteri anahtarı eklemek gerekir Excel ile XLL kayıt için
%APPDATA%\Microsoft\AddIns 

o bağlıdır Kullanıcının sahip olduğu Excel sürümü. Bilgisayarımda Örneğin

(Windows 7 64 bit Excel 2007 çalışan 32-bit), şu yolu bir kayıt defteri anahtarı eklemek gerekir:

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

anahtar tip REG_SZ olurdu AÇIK (veya OPEN1, OPEN2, vb.) ve /R "ExcelXLL-packa.xll" değeri

2 sorunum var. Birincisi, kullanıcının hangi doğru sürümü alması gerektiğine dair Excel'in hangi sürümüne karar vermesi gerektiğidir ve 2. yaratılması gereken doğru OPEN sürümünü belirlemektir (örneğin, kullanıcı zaten OPEN, OPEN1 ve OPEN2 ise) bir OPEN3 anahtarı oluşturur).

Kurulum veya Dağıtım projesini veya bir InstallShield LE projesini kullanarak yüklemeyi yapmaya çalışıyorum ve bunun nasıl gidileceğini belirleyemiyorum. Bunu nasıl yapacağını veya bunu yapmanın daha iyi bir yolunu bilen var mı?

DÜZENLEME 1: Bu konuda araştırma bir hayli yapmış ve birkaç pencere montajcılar baktım

. Paketleme ve dağıtım ve InstallShield LE'de

, ben yükleme/kaldırma yüklemek ile proje çıkışını benim sınıf kitaplığına bir yükleyici sınıfı koyarak ve donatılacak işe alabilirsiniz. Bu yaklaşımda, yükleyici sınıfını kullanarak kayıt defteri anahtarının eklenmesini/kaldırılmasını ele aldım. Sahip olduğum sorun, kullanıcının yeni bir yükleme yapmadan önce ilk önce kaldırması gerektiğidir (güncelleme özelliği yok).

Ben Kurulum Fabrika demo versiyonunu indirilen ve işe/güncelleştirmeyi yüklemek alabilirsiniz ama çerçeve denetimi yapamaz (demo ile sevk değil). Ayrıca, kaldırma başarısız olur (ancak bunu biraz daha araştırmayla çalışmaya başlayabilirim).

Ben WiX yükleyici kullanarak ilgileniyorum, ama herkes WiX kullanarak dağıtım gerçekleştirmek için nasıl bir örnek varsa bilmek istiyorum. Ben de yükleyici sınıfını kullanmanız gerekiyorsa bilmek rica ediyorum ya HKCU \ Software \ Microsoft \ Office [Version] 0,0 \ Excel \ Seçenekler altında AÇIK [n] anahtarı için arama işlemek için farklı bir yol olup olmadığını. Ben yükleyici sınıfı etkinleştirmek için proje çıkışını kullanacak olursak, o zaman (temel proje çıkışı için Program Files altında diğeri altında% AppData% \ paketlenmiş XLL için Microsoft \ AddIns) 2 ayrı hedef dizinleri olması gerekir.

Her türlü yardım büyük beğeni topluyor.

sayesinde

Lee

cevap

2

IsWix ve Wix 3.7 kullanıyordum. Bunu çözebiliyordum.

Windows Installer Özel eylemler işlemek için bir C# sınıfı üretebilmek için: özellik ayarlamak için 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

şöyle bileşenlerini kaydetmek için nasıl

Faydalı bağlantılar içeriğine CustomAction.config dosyasının açıklaması WIX Custom Actions built for .Net Framework 4.0 does not work? Ways to resolve?

DÜZENLEME 1: (Çok önemli) WiX hakkında genel bilgi için

http://channel9.msdn.com/blogs/scobleizer/wix-team-the-most-used-piece-of-software-at-microsoft-and-its-open-source#Page=2

5

Excel 32 bit, 64-bit vs, kayıt kontrol edebilirsiniz algılamak için: vb genellikle gerek AÇIK, OPEN1, OPEN2 için Detect whether Office is 32bit or 64bit via the registry

Anahtarları numaralandıran yükleme komut dosyasında bir Özel Eylem.

+0

Merhaba Govert, Neyin gerekli olduğunu anladım ama bir bulmaya teşebbüs edilmiştir yukarıdaki gibi benim Edit 1 bakınız yükleme, güncelleme ve kaldırma seçeneklerini yapacak olan yükleyici. Esasen, bir yüklemeyi önce yüklemeyi zorlamadan, daha yeni bir yüklemeyle bir yüklemenin üzerine yazmamı sağlayacak bir yükleyiciye ihtiyacım var. –