2013-09-03 13 views
5

ExcelDNAとC#を使用してExcel XLLを開発しました。私は展開をテストしたいと思っていますが、実際に動作する手順を提供する多くの情報を見つけることはできません。Excel XLLアドインを展開し、アドインを自動的にExcelに登録する方法

私のプロジェクトは、ExcelDnaリファレンスを持つクラスライブラリとして開発されました。 .dnaファイルには、すべてのリソースをパックされたXLL(Pack = "true"属性)にパックするコードがあります。

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

私はパス内のターゲットマシンに詰めXLL展開したいと思います:自動的にエクセルでXLLを登録するために

%APPDATA%\Microsoft\AddIns 

を、私は依存のレジストリキーを追加する必要がありますユーザーが持っているExcelのバージョン。

例えば、私のパソコン(エクセル2007を32ビット実行しているWindows 7 64ビット)に、私は次のパスにレジストリキーを追加する必要があります。

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

キーが持つ型REG_SZになります名前OPEN(またはOPEN1、OPEN2など)と値 /R「ExcelXLL-packed.xll」

私には2つの問題があります。 1つ目は、ユーザーが正しいパスを取得する必要があるExcelのバージョンと、作成する必要がある正しいOPENバージョンを判断することです(たとえば、ユーザーがOPEN、OPEN1、OPEN2を既に持っている場合など)。 OPEN3キーが作成されます)。

セットアップとデプロイメントプロジェクトまたはInstallShield LEプロジェクトのいずれかを使用してインストールを実行しようとしていますが、これについてどうやって解決するのか判断できません。誰かがこれを行う方法またはそれを行う良い方法を知っていますか?

EDIT 1:

私はこの上の多くの研究を行っているし、いくつかのWindowsインストーラを見てきました。

パッケージとデプロイメントとInstallShield LEでは、インストーラクラスをクラスライブラリに配置し、プロジェクト出力をインストールにバンドルすることで、インストール/アンインストールを実行できます。このアプローチでは、インストーラクラスを使用してレジストリキーの挿入/削除を処理します。私が持っている問題は、新しいインストール(アップデート機能なし)を実行する前に、まずアンインストールする必要があるということです。

セットアップファクトリのデモ版をダウンロードしましたが、インストール/アップデートが動作するようになりましたが、デモには含まれていないフレームワークチェックはできません。また、アンインストールは失敗します(しかし、私はこれをさらに調査しても動作するようになるかもしれませんが)。

私はWiXインストーラの使用に興味がありますが、WiXを使用して展開を実行する方法のサンプルがあるかどうかを知りたいと思っています。また、インストーラクラスを使用する必要があるか、HKCU \ Software \ Microsoft \ Office [Version] .0 \ Excel \ OptionsのOPEN [n]キーの検索を処理する方法が異なるかどうかを知りたいと思います。インストーラクラスを有効にするためにプロジェクト出力を使用する場合は、2つの別個のターゲットディレクトリが必要です(基本プロジェクト出力の場合はProgram Filesの下に、パック化されたXLLの場合は%appdata%\ Microsoft \ AddInsの下に1つ)。

ご協力いただきまして誠にありがとうございます。64ビットの対エクセル32ビットを検出する

おかげで、

リー

答えて

2

IsWixとWix 3.7を使用して、これを解決できました。 Windowsインストーラのカスタムアクションを処理するために、C#クラスを生成するための

:プロパティを設定するために 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

を次のようにコンポーネントを登録する方法について

便利なリンクがありますのCustomAction.configファイルの内容を WIX Custom Actions built for .Net Framework 4.0 does not work? Ways to resolve?

EDIT 1:(非常に重要)WiXの上の一般的な知識については

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

5

は、レジストリをチェックすることができます。あなたは一般的に必要OPEN、OPEN1、OPEN2などについてはDetect whether Office is 32bit or 64bit via the registry

をキーを列挙するインストールスクリプト内のカスタムアクション。

+0

こんにちはGovert、私が必要とされているものを考え出したが、見つけようとされているとして上記の私の編集1を参照してください。インストーラーは、インストール、更新、およびアンインストールのオプションを実行します。基本的には、私は最初のアンインストールを強制することなく、より最近のインストールで1つのインストールを上書きできるインストーラが必要です。 –