WiX安装选项--注册程序集到GAC和VS的设计时环境
来源:互联网 发布:后海四合院知乎 编辑:程序博客网 时间:2024/05/18 15:05
Visual Studio的设计时引用组件的窗口中看到的程序集的位置和程序集的运行时位置是不一样的,特别是在全局程序集缓存(GAC)中的程序集,通过WiX制作Winodws安装程序的时候需要处理这个区别。
VS的设计时的添加引用窗口看到的程序集的位置来自注册表SOFTWARE/Microsoft/.NETFramework/AssemblyFolders – 放在HKEY_LOCAL_MACHINE 下面就是针对所有的用户, 或者放在HKEY_CURRENT_USER 下面针对当前用户。
WiX要把一个程序注册到GAC,只需要在File 上增加一个选项 Assembly=".net" 就可以了,但是注册到GAC的dll不会放到安装目录下方了,这就需要通过提供两个Component方式来处理,例如下面的配置:
xml version="1.0" encoding="utf-8"?><Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="a960cf35-0779-43e8-923b-35638f2bfc42" Name="Minimal" Language="2052" Version="1.0.0.0" Manufacturer="Geffzhang" UpgradeCode="0bf7e020-5bbd-4a06-8e39-e715999edbf5"> <Package InstallerVersion="200" Compressed="yes" Description="Minimal Windows Installer Sample" Comments="This installer database contains the logic and data required to install Minimal Windows Installer Sample." /> <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> <Property Id="EnableEV" Value="1"> < span>Property> <Condition Message="你必须有管理员权限才能安装应用程序">[CDATA[Privileged]]>< span>Condition> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLLOCATION" Name="Minimal"> <Component Id="Component1" Guid="{1781A625-8ACB-45E7-A8BA-219D81760B2E}"> <CreateFolder /> <Environment Id="TestMinVar" Action="set" Part="all" Name="MinEnvVar" Permanent="no" System="yes" Value="8" /> <File Id="File_Payload" Source="payload.txt" KeyPath="yes" /> < span>Component> <Directory Id="GAC" Name="GAC"> <Component Id="RTGACTest" Guid="22887611-B13E-41EE-897C-D78830E68AEB" DiskId="1"> <File Id="F_RT_GACTEST" LongName="GACTest.dll" Source="../build/GACTest.dll" KeyPath="yes" Assembly=".net" /> < span>Component> < span>Directory> <Component Id="DTGACTest" Guid="FB935B7D-D2BD-4B83-A26C-A9376EBA0915" DiskId="1"> <File Id="F_DT_GACTest" LongName="GACTest.dll" Source="../build/GACTest.dll" KeyPath="yes" /> <Registry Id="R_DT_MyControl_AssemblyFolders" Root="HKLM" Key="SOFTWARE/Microsoft/.NETFramework/AssemblyFolders/[ProductName]" Value="[$DTGACTest]" Type="string" /> < span>Component> < span>Directory> < span>Directory> < span>Directory> <Feature Id="ProductFeature" Title="Minimal" Level="1"> <ComponentRef Id="Component1" /> <ComponentRef Id="DTGACTest"/> <ComponentRef Id="RTGACTest" /> < span>Feature> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" /> <UIRef Id="WixUI_InstallDir" /> <UI /> < span>Product>< span>Wix>
上面的例子的GACTest.dll注册了两个Component--RTGACTest和DTGACTest,RTGACTest下的File增加了属性Assembly=".net",DTGACTest则没有增加,同时在DTGATest增加了一个注册表项目。
- WiX安装选项--注册程序集到GAC和VS的设计时环境
- WiX安装选项--注册程序集到GAC和VS的设计时环境
- Wix打包系列(八) 注册程序集到GAC和VS的设计时环境
- 如何引用已经安装到GAC的程序集
- 引用安装到GAC中的程序集
- 注册程序集到 GAC 中最简单的笨方法
- 【转】将程序集加入GAC,并让其能够在VS的添加引用的.NET选项卡中被引用
- 创建强命名程序集并安装到GAC中
- 在Win7中安装程序集到GAC
- 在Win7中安装程序集到GAC
- 在Win7中安装程序集到GAC
- 强命名程序集和部署到GAC
- WiX安装选项--环境变量
- Winform 安装包 卸载 自动注册DLL到GAC
- 部署强命名程序集到GAC
- 总结: 如何将程序集(dll)安装到全局程序集缓存(GAC)中
- 如何将程序集(dll)安装到全局程序集缓存(GAC)中
- 如何将程序集(dll)安装到全局程序集缓存(GAC)中
- 关机代码(C#)
- Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5, Second Edition
- Ruby on Rails Enterprise Application Development: Plan, Program, Extend
- 想随便写点东西
- Illustrated C# 2008 (Windows.Net)
- WiX安装选项--注册程序集到GAC和VS的设计时环境
- 爱占便宜的国家
- Beginning VB 2008: From Novice to Professional
- Mastering Revit Architecture 2008
- Introducing 3ds Max 2008
- 在Karrigell中使用Cheetah模板引擎
- 设计优良的API
- Inside LightWave v9
- lightbox---在web页面中添加图片浏览功能