我使用ExcelDNA和C#开发了Excel XLL。我正处于开始测试部署的阶段,但找不到实际提供有效步骤的大量信息。
我的项目是作为带有ExcelDna参考的类库开发的。在.dna文件中,我有下面的代码将所有资源打包到XLL的打包版本中(即Pack =“true”属性)。
<DnaLibrary Name="ExcelXLL" RuntimeVersion="v4.0" Language="C#">
<ExternalLibrary Path="ExcelXLL.dll" LoadFromBytes="false" Pack="true" />
我想在路径中将打包的XLL部署到目标计算机:
%APPDATA%\Microsoft\AddIns
为了使用Excel自动注册XLL,我需要添加一个注册表项,该注册表项取决于用户拥有的Excel版本。
例如,在我的计算机上(运行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个问题。第一个是确定用户必须获得正确路径的Excel版本,第二个是确定我需要创建的正确OPEN版本(例如,如果用户已经有OPEN,OPEN1和OPEN2那么我会创建一个OPEN3键。)
我正在尝试使用安装和部署项目或InstallShield LE项目进行安装,但无法确定如何进行此操作。有谁知道如何做到这一点或更好的方式呢?
编辑1:
我已经对此做了大量研究,并查看了几个Windows安装程序。
在打包和部署以及InstallShield LE中,我可以通过将安装程序类放入我的类库并将项目输出与安装捆绑来使安装/卸载工作。在这种方法中,我使用安装程序类处理插入/删除注册表项。我遇到的问题是用户必须先卸载才能运行新安装(无更新功能)。
我下载了Setup Factory演示版,可以安装/更新工作但不能进行框架检查(不随演示一起提供)。此外,卸载失败(尽管我可以通过更多调查来解决此问题)。
我对使用WiX安装程序感兴趣,但是想知道是否有人有关于如何使用WiX执行部署的示例。我还想知道是否需要使用安装程序类,或者是否有不同的方法来处理在HKCU \ Software \ Microsoft \ Office [Version] .0 \ Excel \ Options下搜索OPEN [n]键。如果我使用项目输出来启用安装程序类,那么我需要有两个单独的目标目录(一个在Program Files下用于基本项目输出,一个在%appdata%\ Microsoft \ AddIns下用于打包的XLL)。 / p>
非常感谢任何帮助。
谢谢,
利
答案 0 :(得分:5)
要检测Excel 32位与64位,您可以检查注册表:Detect whether Office is 32bit or 64bit via the registry
对于OPEN,OPEN1,OPEN2等,您通常需要在安装脚本中使用自定义操作来枚举密钥。
答案 1 :(得分:4)
使用IsWix和Wix 3.7,我能够解决这个问题。
有关如何注册组件的有用链接如下:
用于生成C#类以处理Windows Installer自定义操作: 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
用于将CustomAction.config文件的属性设置为Content WIX Custom Actions built for .Net Framework 4.0 does not work? Ways to resolve?
编辑1:
有关WiX的一般知识(非常重要) http://channel9.msdn.com/blogs/scobleizer/wix-team-the-most-used-piece-of-software-at-microsoft-and-its-open-source#Page=2