📄 dbcorewix.in
字号:
<!-- $Id: dbcorewix.in,v 1.10 2006/09/14 15:50:50 mjc Exp $
-
- Dbcorewix.in is the DB core WiX input file, and is used by
- s_winmsi to create dbcore.wxs (an input to WiX).
- Most everything here is pure 'WiX' syntax within XML,
- the exceptions are:
- 1) everything is pushed through the m4 preprocessor first.
- this makes certain boilerplate actions in the UI tolerable.
- We put all needed defines at the top of this file.
- 2) a very few identifiers beginning with WIX_DB_*
- are predefined as m4 macros on the command line.
- These are items that only the caller (s_winmsi) can know.
-
- M4 makes many things easier, but there are peculiarities.
- In particular, if you are using a macro with args, like
- TOPSTRIPE, note that *any* occurance of the characters "( ) ,"
- are interpreted by m4, even if they occur in an Xml comment or string.
- Remember this when editing this file!
-
- Beyond that, there is a lot to understand about WiX
- and how this file operates, to get started, look at
- various WiX tutorials, like:
- http://www.ondotnet.com/pub/a/dotnet/2004/04/19/wix.html
- http://blogs.msdn.com/robmen/archive/2004/04/05/107709.aspx
- Also view the lecture covered here:
- http://blogs.msdn.com/robmen/archive/2004/09/23/233684.aspx
-
- Finally, understand that WiX is an XML layering above the concepts
- defined by the world of the MSI installer. To really know how to do WiX,
- (and especially the UI), you need to understand the MSI installer.
- A key point is that MSI (and hence WiX) is not really procedural.
- MSI defines a number of tables (like Feature or CustomAction) in
- an internal database. WiX merely specifies how to fill these tables,
- and the msiexec program merely cranks through the various tables,
- processing each row. It is true that you can do procedural things
- via CustomActions, but to get them in order, you must specify columns
- in the table with things like After="SomeOtherRowId".
-
- See "About the User Interface" and subordinate documents:
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/about_the_user_interface.asp
-->
m4_include(WIX_DB_SHARED_WINMSIDIR/dbwix.m4) <!-- Define common macros -->
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<!-- The ???? stuff asks WiX to create a unique GUID for us -->
<Product Id='????????-????-????-????-????????????'
Name='Berkeley DB WIX_DB_VERSION' Version='WIX_DB_VERSION.0'
Manufacturer='Oracle Corporation' Language='1033'>
<!-- Store files as a compressed 'cabinet' embedded in the .MSI file. -->
<Package Id='????????-????-????-????-????????????'
Keywords="Embedded Database Datastore"
Description='Berkeley DB WIX_DB_VERSION'
Comments='includes sources and binaries' InstallerVersion='200'
Compressed='yes' Platforms="Intel"
Languages="1033" SummaryCodepage="1252" />
<Media Id='1' Cabinet='dbcore.cab' EmbedCab='yes' />
COMMON_PROPERTIES()
<!-- Declare properties for environment -->
WIX_DB_ENV_FEATURE_PROPS()
<Condition Message=
"To install [ProductName], you must be running Windows 2000 or Windows XP.">
<![CDATA[VersionNT>=500]]></Condition>
<Condition Message=
"You must have administrative access to install this product.">
NOT Priviledged
</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="." SourceName="." />
<Directory Id="FavoritesFolder" Name="." SourceName="." />
<Directory Id="ProgramFilesFolder" Name="." SourceName=".">
<Directory Id="OracleFolder" Name="Oracle" LongName="Oracle">
<Directory Id="INSTALLDIR" Name="WIX_DB_8CHAR_VERSION"
LongName="Berkeley DB WIX_DB_VERSION">
<Directory Id="INSTALLUTIL" Name="instutil"
LongName="installutil">
</Directory>
<!-- Note: these guids must be changed when an installer
- for a new release is made available.
-
- TODO: to play by the rules of components (see
- http://blogs.msdn.com/robmen/archive/2003/10/18/56497.aspx,
- "Component Rules 101" by Rob Mensching),
- we should devise a strategy for ALL guids (remember
- many are created by s_winmsi). This should work:
-
- Each guid is composed of three parts, like so:
- PPPPPPPP-VVVV-VVVV-HHHH-HHHHHHHHHHHH
- The P part is unique to the product, e.g.
- the bdb core installer might always use 9A3FE019.
- The V part is the version of the product, e.g.
- 4.2.37 might be translated as 0402-0025 # 25 is 37 in hex
- The H part is a hash value created from the directory
- that houses the component. Like if the component for
- the directory "bin/Debug" hashed to 1234567890abcdef,
- then the H part is 1234-567890abcdef.
-
- This scheme guarantees that rebuilds of the installer
- over the same release tree get the same GUIDs.
- But for a different release tree (which *should* get
- installed in a different directory, since install
- directories are named by release number), we will get
- completely different GUIDs.
-->
<Component Id="RequiredFiles"
Guid="13E1DF48-903B-11D9-8BDE-F66BAD1E3F3A"
KeyPath="yes" SharedDllRefCount="yes"
Location="either" DiskId="1">
<File Id="LICENSE.txt" Name="LICENSE.txt"
src="WIX_DB_SRCDIR\LICENSE" />
<File Id="README.txt" Name="README.txt"
src="WIX_DB_SRCDIR\README" />
<Registry Id="RootDir.RegistryVal" Root="HKLM"
Key="SOFTWARE\Oracle\Berkeley DB\WIX_DB_VERSION"
Name="RootDirectory" Value="[INSTALLDIR]" Type="string"
Action="write" />
<CreateFolder />
</Component>
COMMON_COMPONENTS()
<!-- <Directory>, <Component> generated from files.in -->
WIX_DB_DIRECTORY_STRUCTURE()
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="." SourceName=".">
<Directory Id="BerkeleyDbMenu" Name="WIX_DB_8CHAR_VERSION"
LongName="Berkeley DB WIX_DB_VERSION" />
</Directory>
</Directory>
<!-- <File>, <Shortcut> generated from links.in -->
WIX_DB_LINKS()
COMMON_FEATURES(`Berkeley DB')
<!-- ================================================================ -->
<UI>
<Property Id="DefaultUIFont"><![CDATA[Tahoma8]]></Property>
<TextStyle Id="Tahoma8" FaceName="Tahoma" Size="8" />
DIALOG_WELCOME(MainWelcomeDlg, , ShowLicenseDlg)
DIALOG_LICENSE(ShowLicenseDlg, MainWelcomeDlg, TargetFolderDlg,
`Berkeley DB')
DIALOG_TARGET(TargetFolderDlg, ShowLicenseDlg, FeatureSelectionDlg)
DIALOG_FEATURE(FeatureSelectionDlg, TargetFolderDlg, EnvVarDlg,
`Debug libraries are needed for working C/C++ examples.')
DIALOG_ENVIRONMENT(EnvVarDlg, FeatureSelectionDlg, ReadyToInstallDlg)
DIALOG_READY(ReadyToInstallDlg, EnvVarDlg, )
DIALOG_PROGRESS(ShowProgressDlg, , )
DIALOG_SUCCESS(InstallSuccessDlg, , , `Berkeley DB',
`Oracle Technology Network Berkeley DB forum')
<!-- Here are extra admin dialogs -->
DIALOG_ADMIN_CANCEL(CancelInstallerDlg)
DIALOG_ADMIN_NOSPACE(OutOfSpaceDlg, FeatureSelectionDlg)
DIALOG_ADMIN_INTERRUPTED(InstallErrorDlg, Return)
DIALOG_ADMIN_INTERRUPTED(InstallCancelledDlg, Exit)
<!-- This sequence tells MSI what to do when (at the highest level) -->
<InstallUISequence>
<Show Dialog="InstallErrorDlg" OnExit="error" />
<Show Dialog="InstallCancelledDlg" OnExit="cancel" />
<Show Dialog="InstallSuccessDlg" OnExit="success" />
<Show Dialog="MainWelcomeDlg" After="CostFinalize" />
<Show Dialog="ShowProgressDlg" After="MainWelcomeDlg" />
</InstallUISequence>
COMMON_UI_TEXT()
<Property Id="MaxInstallSize">49 MB</Property>
</UI>
COMMON_EXECUTE_SEQUENCE()
</Product>
</Wix>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -