7193 lines
378 KiB
Plaintext
7193 lines
378 KiB
Plaintext
|
|
||
|
|
||
|
Darwin Setup Development Notes for Testing Releases
|
||
|
|
||
|
99-02-10 murate Implemented COM+ Registration support.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.0210
|
||
|
-----------------------------
|
||
|
|
||
|
99-02-09 bench bug 8766: fixed problem caused when the logon user
|
||
|
name begins with a '#'. we were failing to write a
|
||
|
value to the InProgress key, causing all installs to
|
||
|
fail.
|
||
|
|
||
|
99-02-09 cgouge Bug 8384. Memory leak in mergemod.dll. Reference
|
||
|
counts in enumerators were off by 1 due to problem in
|
||
|
clone methods. (SDK issue only).
|
||
|
|
||
|
99-02-08 cgouge Bug 8804. Extension.Extension, Verb.Extension_,
|
||
|
MIME.Extension_ changed to type "Text" to match
|
||
|
Docs/usage. (no code change)
|
||
|
|
||
|
99-02-08 cgouge Fixed bug 8802. Using "][" in a formatted field
|
||
|
would cause a crash/freeze during internal field
|
||
|
validation.
|
||
|
|
||
|
99-02-05 bench bug 8784: fixed error that occured when patching a
|
||
|
per-machine install including transforms.
|
||
|
|
||
|
99-02-04 cgouge Bug 8771, Validation. ICE09 was incorrectly
|
||
|
requiring that all components installed to the system folders
|
||
|
have keyfiles with system bits set. The only
|
||
|
requirement is that the permanent bit be set (and it is a
|
||
|
warning anyway.) Removed the incorrect check.
|
||
|
|
||
|
99-02-04 cgouge Bug 8747, Validation. ICE24 would print garbled
|
||
|
error messages due to a bad formatting string.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.5003
|
||
|
-----------------------------
|
||
|
|
||
|
99-02-03 johndelo bug 8758, fix UILevel property to match INSTALLUILEVEL_*
|
||
|
values so that conditional logic works properly.
|
||
|
Previously was set to different internal enum values,
|
||
|
and was always set to default when running in service.
|
||
|
UILevel Property help topic has correct values, but note
|
||
|
that this topic is an automation topic, and not an
|
||
|
install engine property. Doc topic will be added on this.
|
||
|
|
||
|
99-02-03 johndelo German template.msi received and added to localized list.
|
||
|
templates\intl\template.DEU
|
||
|
|
||
|
99-02-03 eugend Fixed bug # 8748. From now on, the SelectionTree
|
||
|
control will stop displaying features (nodes) in bold.
|
||
|
|
||
|
99-02-02 malcolmh Fixed bug 8755. Fixed creation of shortcuts on the
|
||
|
desktop when profile folders are redirected.
|
||
|
|
||
|
99-02-02 chetanp bug 8740 - changed use of TextSize to CharacterCount
|
||
|
when using the Remove string manipulation fn.
|
||
|
|
||
|
|
||
|
99-02-02 bench bug 8721: we now schedule the ttfcache file for deletion
|
||
|
even if it doesn't exist before shutdown.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4930
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-30 johndelo bug 8703, ObjectSafety interface by default now returns
|
||
|
not safe for scripting. Can be overridden by MSI
|
||
|
policy setting "SafeForScripting" = 1
|
||
|
|
||
|
99-01-30 johndelo bug 8687, permanent ODBC drivers should never be unregistered
|
||
|
|
||
|
99-01-30 bench bug 8258: on some installs with the ForceReboot
|
||
|
action, and "error accessing install server" error would
|
||
|
pop up after the reboot. This was caused by an RPC
|
||
|
failure in CoCreateInstance when attempting to connect
|
||
|
to the install server. The fix is to retry the
|
||
|
CoCreateInstance call when an RPC error is encountered.
|
||
|
We will retry once every 100 ms for at most 30
|
||
|
seconds.
|
||
|
|
||
|
99-01-28 malcolmh Fixed bug 8700: If you attempted to prepend a value
|
||
|
to an environment variable on NT, and the existing
|
||
|
value has an embedded environment variable, then we'd
|
||
|
incorrectly add "#%" in the middle of the environment
|
||
|
variable.
|
||
|
|
||
|
99-01-28 chetanp backed out bug 7412 changes due to office triage
|
||
|
punt.
|
||
|
|
||
|
99-01-28 chetanp bug 7412 - add bit to reinstall user data as well
|
||
|
during implicit reinstallation during
|
||
|
MsiProvideComponent, MsiProvideQualifiedComponent and
|
||
|
MsiProvideComponentFromDescriptor
|
||
|
|
||
|
99-01-28 chetanp bug 8698 - use of uninitialised buffer. Use
|
||
|
CTempBuffer.Resize inplace of SetSize.
|
||
|
|
||
|
99-01-27 chetanp bug 8553 - we now ensure that a feature had been
|
||
|
explicitly selected to be installed (locally or RFS) and
|
||
|
dont promote an advertised feature to installed just
|
||
|
because all its components are present.
|
||
|
|
||
|
99-01-27 chetanp Bug 8662, handle -1 roots as registry key paths for
|
||
|
components
|
||
|
|
||
|
99-01-27 cgouge Bug 8678, validation. ICE14 modified to do a case
|
||
|
insensitive compare when checking to see if a Feature
|
||
|
is its own parent.
|
||
|
|
||
|
99-01-26 malcolmh Fixed bug 8622. We have two new private properties
|
||
|
relating to our new public property security
|
||
|
mechanism:
|
||
|
|
||
|
RestrictedUserControl - should be set by darwin
|
||
|
whenever we're in the mode of restricting which public
|
||
|
properties get sent to the server side. authors can
|
||
|
use this property to conditionalize certain dialogs
|
||
|
and actions.
|
||
|
EnableUserControl - is the equivalent to the policy
|
||
|
of the same name. is essentially equivalent to a "*"
|
||
|
for SecureCustomProperties - when this property is
|
||
|
set, all public properties will always be passed across
|
||
|
to the server when installing or otherwise
|
||
|
configuring this pkg.
|
||
|
|
||
|
|
||
|
99-01-26 cgouge Bug 8570, Property table schema changed to allow
|
||
|
unlimited length in the Value column. Changed in schema
|
||
|
and all built databases.
|
||
|
|
||
|
99-01-26 mattwe 8066: picked up new versions of shfolder.dll from:
|
||
|
Alpha=\\iepub\pubs.ie5\BLD1321.1\ALPHA\flat\retail\en\alpha
|
||
|
x86=\\iepub\pubs.ie5\BLD1321.1\x86\flat\retail\en\winnt
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4926
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-25 bench bug 8480: check in version 1.94.319 build of
|
||
|
mspatcha.dll and mspatchc.dll. the fix taken solves a bug
|
||
|
when patching certain files on Win9X.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4922
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-21 malcolmh Fixed bug 8416: Security problem with custom action
|
||
|
DLLs present on system with higher version
|
||
|
|
||
|
We now **as our default** ignore public properties
|
||
|
that aren't in our approved list or in an
|
||
|
author-specified list. The author can extend our approved list
|
||
|
by setting the "SecureCustomProperties" property to a
|
||
|
semi-colon delimited list of properties that are to
|
||
|
be allowed in addition to the properties in our
|
||
|
hard-coded approved list.
|
||
|
|
||
|
We will, however, respect _all_
|
||
|
public properties (our former behavior) if any of
|
||
|
these conditions are true:
|
||
|
|
||
|
1) The user is on Win9X.
|
||
|
2) The user is an Admin.
|
||
|
3) The per-machine "EnableUserControl" policy is set
|
||
|
to 1
|
||
|
4) The product is not being installed elevated (i.e.
|
||
|
is unmanaged)
|
||
|
|
||
|
Our hard-coded list of properties that we allow is:
|
||
|
|
||
|
FILEADDLOCAL
|
||
|
COMPONENTADDLOCAL
|
||
|
COMPONENTADDSOURCE
|
||
|
COMPONENTADDDEFAULT
|
||
|
ALLUSERS
|
||
|
SCRIPTFILE
|
||
|
EXECUTEMODE
|
||
|
PRODUCTLANGUAGE
|
||
|
TRANSFORMS
|
||
|
REINSTALLMODE
|
||
|
RUNONCEENTRY
|
||
|
CURRENTDIRECTORY
|
||
|
CLIENTUILEVEL
|
||
|
CLIENTPROCESSID
|
||
|
ACTION
|
||
|
CURRENTMEDIAVOLUMELABEL
|
||
|
INSTALLLEVEL
|
||
|
REINSTALL
|
||
|
FEATUREREMOVE
|
||
|
FEATUREADDLOCAL
|
||
|
FEATUREADDSOURCE
|
||
|
FEATUREADDDEFAULT
|
||
|
FEATUREADVERTISE
|
||
|
PATCH
|
||
|
SECONDSEQUENCE
|
||
|
TRANSFORMS
|
||
|
TRANSFORMSATSOURCE
|
||
|
TRANSFORMSSECURE
|
||
|
CURRENTDIRECTORY
|
||
|
MIGRATE
|
||
|
LIMITUI
|
||
|
LOGACTION
|
||
|
UPGRADINGPRODUCTCODE
|
||
|
REBOOT
|
||
|
SEQUENCE
|
||
|
NOCOMPANYNAME
|
||
|
NOUSERNAME
|
||
|
RESUME
|
||
|
PRIMARYFOLDER
|
||
|
SHORTFILENAMES
|
||
|
INSTALLLEVEL
|
||
|
MEDIAPACKAGEPATH
|
||
|
PROMPTROLLBACKCOST
|
||
|
ODBCREINSTALL
|
||
|
|
||
|
|
||
|
99-01-21 chetanp bug 8476 - directly use HKLM\S\C in place of
|
||
|
:RegOpenUserClassesRoot in case our caller is the local
|
||
|
system but is not impersonated.
|
||
|
|
||
|
99-01-21 chetanp bug 8470 - I have made all the words in our query
|
||
|
dictionary as uppercase. As per the triage's decision
|
||
|
I have NOT changed the string compare to a case
|
||
|
sensitive compare.
|
||
|
|
||
|
99-01-21 malcolmh Fixed bug 8134. Fix impersonation during
|
||
|
CreateFileFromData. This allows us to write icon and transform
|
||
|
data during app deployment even when user profiles are
|
||
|
redirected to a network share.
|
||
|
|
||
|
99-01-21 malcolmh Fixed bug 8483: We now have an HKCU version of our
|
||
|
ResolveIOD key. It's at
|
||
|
HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\ResolveIOD. If an EXE
|
||
|
appears under either the HKCU or the HKLM key then we'll
|
||
|
allow install-on-demand.
|
||
|
|
||
|
99-01-21 tracyf Fixed bug 8471 - avoid potential internal error when
|
||
|
user cancels.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4920
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-19 johndelo bug 8440 - unbind ODBC driver manager DLLs before
|
||
|
file copy to prevent file in use, which then
|
||
|
caused mismatched ODBC DLL versions during IE install.
|
||
|
|
||
|
99-01-19 johndelo bug 8435 - corrupted Thai, Vietnamese InstMsi.msi
|
||
|
bug 8399 - bad/missing error 1639 resources in 5 languages
|
||
|
|
||
|
99-01-19 chetanp bug 8213 - fixed crash due to attempting to call
|
||
|
RemoveFontResource on a font that is being used by the
|
||
|
system.
|
||
|
|
||
|
99-01-19 chetanp fixed bug 8450 where we were not properly creating
|
||
|
shortcuts for RFS components in multi-user scenarios
|
||
|
|
||
|
99-01-19 bench bug 8455: fixed an error in the InstallFiles action
|
||
|
when installing from a URL location.
|
||
|
|
||
|
99-01-19 bench bug 8460: fixed alpha-only bug that caused self-reg
|
||
|
to fail for dlls that linked to other dlls not
|
||
|
located in the %path%.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4919.1
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-19 tracyf Fixed bug 8433 - prior to the fix, an install using
|
||
|
the MoveFile table would fail with a fatal error if
|
||
|
the source file to be moved was in use.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4919
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-18 malcolmh Fixed bug 8413: Error 1310 copying Excel.pip and
|
||
|
Error 1406 writing some nls registry when boot XL after
|
||
|
upgrade to NT5.
|
||
|
|
||
|
This fixes a failure that occurs when Darwin is:
|
||
|
|
||
|
1) Doing an un-managed install and
|
||
|
2) Installing over an existing ACL'd file and
|
||
|
3) The file we're installing has the read-only
|
||
|
attribute set.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4915
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-13 bench bug 8259: since the RunOnce key has a 256-character
|
||
|
limit for the command line, we now store the
|
||
|
after-reboot command line for ForceReboot installs under
|
||
|
HKLM\SW\MS\Windows\CV\Installer\RunOnceEntries. the
|
||
|
RunOnce command line is now just "msiexec /@ XXXXXX"
|
||
|
where XXXXXX is the name of the value in the
|
||
|
RunOnceEntries key with the rest of the command line options.
|
||
|
note that this fix also provides the fix for bug 7777.
|
||
|
the original fix for 7777 was partially removed.
|
||
|
|
||
|
99-01-13 eugend Addittion to my 98-11-11 entry: PathEdit is another
|
||
|
control that always uses fonts in the user's default
|
||
|
UI character set.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4913
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-12 mattwe 8253: msiexec /regserver wouldn't actually
|
||
|
re-register msi.dll when the inprocserver32
|
||
|
registry entry was correct. This prevented
|
||
|
NT upgrades from working when the other
|
||
|
info from msi.dll was changed.
|
||
|
|
||
|
99-01-12 eugend Fixed bug # 8244. UsersLanguage style bit can be
|
||
|
set now for ListBox and ComboBox controls as well.
|
||
|
I've updated doc bug # 7631 to track this change.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4912
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-08 cgouge Bug 8327: Validation. ICE30 added support for
|
||
|
directories whose target path is set by either a Darwin or
|
||
|
user-defined property. Previously, it was possible
|
||
|
for a directory set in this way to report a collision
|
||
|
if the source directories were the same. It now maps
|
||
|
these directories to the different target locations.
|
||
|
|
||
|
99-01-08 bench bug 8365: fixed problem caused when patching an
|
||
|
admin image where the package had TempFolder in the
|
||
|
Directory table. this broke Office admin patching.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4908
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-07 mattwe bug 8331: made a pair of fixes for maintaining ACLs
|
||
|
on files already on your system when replace the
|
||
|
underlying bits. One involved periodically dropping
|
||
|
the ACLs, and the other involved always dropping
|
||
|
large ACLs. This is a fix to problems introduced
|
||
|
in bug 6456.
|
||
|
|
||
|
99-01-07 bench bug 8329: removed msidbUpgradeOperator enum from
|
||
|
msidefs.h, which was inadvertently left behind when we
|
||
|
removed support for the Upgrade table (on non-NT5
|
||
|
systems).
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4906
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-05 cgouge Bug 8276: Validation. ICE15 modified to accept
|
||
|
multiple extensions associated with a single MIME type. As
|
||
|
long as a circular reference exists between a MIME
|
||
|
type and an extension, other MIME types can reference
|
||
|
that same extension and other extensions can
|
||
|
reference that same MIME type.
|
||
|
|
||
|
99-01-05 mattwe Fixed bugs 8155 and 7193: Due to serious performance
|
||
|
and not-so-serious implementation bugs with
|
||
|
GetNamedSecurityInfo API in NT4-SP4, we have switched
|
||
|
to GetFileSecurity() to read security and ownership
|
||
|
of files.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4905
|
||
|
-----------------------------
|
||
|
|
||
|
99-01-04 malcolmh Fixed bug 7854. We now support a list of process
|
||
|
names that we enable MsiProvideComponentFromDescriptor
|
||
|
for on low shell versions. To enable a process, write
|
||
|
the process name (e.g. explorer.exe), as the "name"
|
||
|
portion of a named value pair under
|
||
|
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\ResolveIOD. We
|
||
|
use this logic:
|
||
|
|
||
|
|
||
|
// Bug 7854. This code is a hack to work around an
|
||
|
issue with early shell
|
||
|
// release wherein calling IShellLink::Resolve
|
||
|
faults in the shortcut.
|
||
|
// This causes problems with some apps (e.g. Win98
|
||
|
fat16->fat32 converter
|
||
|
// that enumerate the Start Menu, resolving each of
|
||
|
the links). Suddenly
|
||
|
// the user will notice all of their advertised
|
||
|
apps being faulted in. The
|
||
|
// hack is as follows:
|
||
|
//
|
||
|
// 1) Are we in the explorer's process? Allow call
|
||
|
to proceed; otherwise
|
||
|
// 2) Does our shell have the issue fixed? Allow
|
||
|
call to proceed; otherwise
|
||
|
// 3) Is the ResolveIOD policy set? Allow call to
|
||
|
proceed; otherwise
|
||
|
// 4) Are we in a process that really wants
|
||
|
IShellLink::Resolve to really
|
||
|
// resolve? This list is in the registry. If so,
|
||
|
proceed; otherwise
|
||
|
// 5) Return 1603. This should (hopefully) cause
|
||
|
Darwin-unaware apps to
|
||
|
// ignore the link.
|
||
|
|
||
|
99-01-04 malcolmh Fixed bug 8288: We now create MIF files in our SHIP
|
||
|
build as well as in our DEBUG build.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4901
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-31 cgouge Bug 8274. MsiFiler. Added support for SFN|LFN in the
|
||
|
File table based on the summary information stream
|
||
|
value.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4830
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-29 bench fixed bugs 8147 and 8247, which dealt with allowing
|
||
|
a user to use an unblessed source and package when
|
||
|
the DisableBrowse policy is set.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4825
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-23 bench bug 8185: we now reregister and readvertise a
|
||
|
product during a QFE upgrade, to ensure the updating
|
||
|
product information is registered, like the product
|
||
|
version.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4818
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-17 mattwe Bug 8212: Fixed a memory leak in SetSecureACL
|
||
|
|
||
|
98-12-17 cgouge Bug 8164. The DisableBrowse and DisablePatch system
|
||
|
policies have been moved to HKLM from HKCU. The keys
|
||
|
are created with a value of 0 at Darwin install and
|
||
|
ACL for System and Admin full, everybody read.
|
||
|
|
||
|
98-12-17 bench bug 7952: when patching a feature in the
|
||
|
run-from-source state, the feature will now be moved local
|
||
|
instead of advertised.
|
||
|
|
||
|
98-12-17 cgouge Bug 8167. The _Sequence, _Required, and
|
||
|
_InstallValidate tables are no longer part of the schema, and
|
||
|
thus are no longer part of template.msi, simple,msi,
|
||
|
etc. These tables are only used by ICEs, so they are
|
||
|
shipped as part of the CUB file. They should generally
|
||
|
not be included in any MSI.
|
||
|
MsiVal.exe does use these tables, but it is not a
|
||
|
shipping tool anymore. In order to continue validating
|
||
|
as part of the build process, we create a temporary
|
||
|
MSI in the TEMP directory that is a merge of the
|
||
|
database to be validated and these three tables (from the
|
||
|
CUB file source directory). After validing this temp
|
||
|
file, it is deleted.
|
||
|
|
||
|
98-12-17 mattwe Added entries to the Environment table for
|
||
|
TestDb code coverage. Also changed the
|
||
|
ProductVersion per John Delo's request to
|
||
|
6.01.1234
|
||
|
|
||
|
98-12-17 mattwe Bug 8066: Took shfolder.dll 5.0.1011.2100 for
|
||
|
alpha/x86.
|
||
|
|
||
|
98-12-17 mattwe Bug 8181: Removed default logging from instmsi.
|
||
|
This interfered with policy logging, and the logs
|
||
|
were always cleaned up at the end of the run.
|
||
|
|
||
|
98-12-17 mattwe Bug 8171: took new SKY instmsi.msi (inst1051.msi)
|
||
|
|
||
|
98-12-16 bench bugs 8120, 8160: added a new per-user policy called
|
||
|
DisablePatch. if set, patches may not be applied.
|
||
|
this is needed in secure environments as patches can
|
||
|
change an existing install in unlimited ways. and if
|
||
|
the existing install is managed, the changes made by
|
||
|
the patch are run with elevated privileges. in
|
||
|
addition to the new policy, installs that are disabled by
|
||
|
policy now return ERROR_INSTALL_PACKAGE_REJECTED
|
||
|
instead of ERROR_ACCESS_DENIED.
|
||
|
|
||
|
98-12-16 cgouge Bug 8180: Validation. ICE27 updated to handle
|
||
|
DisableRollback action.
|
||
|
|
||
|
98-12-16 cgouge Bug 8166: Validation: ICE03 now reports String
|
||
|
Overflow errors as warnings.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4816
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-15 bench bug 7784: added a UI option to show the basic UI progress
|
||
|
dialog with no modal dialogs (no error messages or
|
||
|
files-in-use dialog). the option to msiexec.exe is
|
||
|
/qb- and the option to MsiSetInternalUI is
|
||
|
INSTALLUILEVEL_PROGRESSONLY.
|
||
|
|
||
|
|
||
|
98-12-15 cgouge Bug 8118. Validation. New ICE56, checks for a
|
||
|
directory structure with a single root of
|
||
|
TARGETDIR/SourceDir so that Admin installs will correctly copy all
|
||
|
files.
|
||
|
|
||
|
98-12-15 johndelo Version bumped to 1.0 , in preparation for shipping.
|
||
|
There should be no compatibility problems, as this
|
||
|
is effectively the same as version 0.30.
|
||
|
Databases can be left with their current version
|
||
|
to maintain compatibility with older MSI versions.
|
||
|
If the database version (Summary Property 14, Pages)
|
||
|
is advanced to 100, then older MSI versions will
|
||
|
not be able to open the package.
|
||
|
|
||
|
98-12-15 mattwe Bug 8142: Fixed several localized instmsi.msi
|
||
|
files that had the incorrect summary info for
|
||
|
their languages.
|
||
|
|
||
|
98-12-15 cgouge Bugs 8070, 8049. ICE Validation. New ICE55. Checks
|
||
|
the LockPermissions table for bad foreign key
|
||
|
references and null permission values.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4815
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-14 mattwe Added 'ptb' (portugese brazillian) support for instmsi.
|
||
|
We're now at 31 languages.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4811.1
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-11 mattwe bug 8107: the LockPermissions table will now recognize
|
||
|
the System, Everyone, and Administrators group (case
|
||
|
insensitive) without the need for localization.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4811
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-11 bench bug 7953: fixed problem with suspended (or
|
||
|
ForceReboot) installs where setting a feature property like
|
||
|
ADDDEFAULT on the command line turns on more features
|
||
|
than the property itself defines. when this happened,
|
||
|
the features not defined by the property weren't
|
||
|
completely installed when resuming the suspended install
|
||
|
(or after the reboot).
|
||
|
|
||
|
98-12-10 davidmck Fixed bug 7914 - CleanSweep could get a file between
|
||
|
the time we got the file version size and getting
|
||
|
the actual version block information. We now fail
|
||
|
gracefully.
|
||
|
|
||
|
98-12-10 bench bug 8059: fixed case where a user may not be
|
||
|
recognized as an admin if they are a member of a large
|
||
|
number of groups. (weren't increasing buffer size if
|
||
|
necessary for GetTokenInformation call)
|
||
|
|
||
|
98-12-10 malcolmh Fixed bug 7891: Re-advertisement is no longer
|
||
|
allowed unless you're app deployment
|
||
|
|
||
|
98-12-10 mattwe Bug 7958: Picked up version 5.0.1011.2000 of shfolder.dll
|
||
|
for instmsi/copymsi. There are x86 and alpha versions.
|
||
|
|
||
|
98-12-09 cgouge Bug 7931. Validation now supports [%id] syntax in
|
||
|
the AnyPath, Path, and Paths column types. It also now
|
||
|
accepts [$component] syntax in those same types, but
|
||
|
only at the beginning of a path. (# and ! are
|
||
|
accepted as well, but the usefulness of these formats is
|
||
|
limited)
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4809
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-08 bench bug 7887: when installing files, we now set both the
|
||
|
creation and modified dates to the modified date of
|
||
|
the source file. this is to ensure the two dates are
|
||
|
identical for any files we copy. for unversioned
|
||
|
files, if the dates are different we never overwrite
|
||
|
the file again. previously, the creation and modified
|
||
|
dates where set to the creation and modified dates of
|
||
|
the source file, which may have been different.
|
||
|
|
||
|
98-12-08 davidmck Fixed bug 7914, a problem with any file that spanned
|
||
|
more than 2 cabinets. We were not correctly handling
|
||
|
the MediaChange message.
|
||
|
|
||
|
98-12-08 mattwe 7929: there was a problem with environment variables
|
||
|
being set on 9X that shouldn't have.
|
||
|
|
||
|
98-12-08 mattwe 7815: Added localization for instmsi/copymsi for the
|
||
|
following LangIDs: 1028, 1031, 1035, 1036, 1038,
|
||
|
1041, 1042, 1049, 1050, 1060, 2052.
|
||
|
The localized databases are checked into src\intl,
|
||
|
and a perl script generates the transforms, and
|
||
|
adds them directly into the internal databases.
|
||
|
|
||
|
DEV NOTE: You must have language support for these
|
||
|
to build copymsi/instmsi successfully, or set the
|
||
|
IGNORELANGID environment variable to ignore
|
||
|
unsupported languages.
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4808
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-07 bench bug 7906: MoveFiles action didn't move files with no
|
||
|
attributes set (i.e. with just the NORMAL
|
||
|
attribute).
|
||
|
|
||
|
98-12-06 cgouge Fixed bug 7896. Internal Validation supports version
|
||
|
strings up to 65535.65535.65535.65535.
|
||
|
|
||
|
98-12-04 bench Bug 7892: fixed rollback of typelibrary
|
||
|
registration.
|
||
|
|
||
|
98-12-04 malcolmh Bug 7890: Allow INSTALLSTATE_ADVERTISED to be passed
|
||
|
to MsiSetFeatureState
|
||
|
|
||
|
98-12-04 malcolmh Fixed bug 7812. We don't cancel any more when the
|
||
|
user says not to.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4804
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-03 bench bug 7777: fixed ForceReboot installs for non-admins.
|
||
|
when the RunOnce key was acl'ed to not allow delete
|
||
|
access to the user, the RunOnce command would
|
||
|
continue to be run at each logon.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4803
|
||
|
-----------------------------
|
||
|
|
||
|
98-12-02 malcolmh Fixed bug 7848. Eliminate warning dialog for failure
|
||
|
to remove a reg value.
|
||
|
|
||
|
98-12-02 malcolmh Bug 7841. Fixed errors during CopyTempDatabase.
|
||
|
|
||
|
98-12-02 malcolmh Fixed bug 7693: Shouldn't base installed property
|
||
|
off Uninstall product key. We now use the
|
||
|
"WindowsInstaller" value.
|
||
|
|
||
|
98-12-02 davidmck Fixed bug 7858 - Problems with DBCS characters in
|
||
|
PathType. We were incorrectly looking at the second
|
||
|
byte and thinking it was a full path when it was a
|
||
|
relative one.
|
||
|
|
||
|
98-12-01 bench bug 7783: made several fixes to rollback for ODBC
|
||
|
DSN installation.
|
||
|
|
||
|
98-12-01 malcolmh Fixed bug 7829: Crash in MsiGetProductInfo
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4801
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-25 cgouge Bug 7763, validation: ICE35 now additionally checks
|
||
|
for files that are marked compressed but do not have
|
||
|
a CAB specified in the Media table.
|
||
|
|
||
|
98-11-25 davidmck Fixed bug 7813, checked in new intl resources for
|
||
|
Fin, Rus, Slv, Hun, Hrv, Fra from RobR.
|
||
|
|
||
|
98-11-25 davidmck Fixed bug 7801, memory leak at the end of Office
|
||
|
install due to leaking a string in SetODBCFolders.
|
||
|
|
||
|
98-11-25 cgouge Bug 7635. Validation: ICE31 now checks that if UI is
|
||
|
authored, you have a DefaultUIFont property which
|
||
|
refers to a valid row in the TextStyle table.
|
||
|
|
||
|
98-11-24 malcolmh Fixed bug 7774: Need to protect NT4 policies.
|
||
|
|
||
|
98-11-24 malcolmh Fixed bug 7803: Rollback does not work when trying
|
||
|
to restore pre-existing environment variables
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4720
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-19 cgouge Bug 3577. Validation. Update ICE03 to check for
|
||
|
missing _Validation entries on empty tables as well.
|
||
|
|
||
|
98-11-19 cgouge Bug 7734, validation. Updated _Validation entries to
|
||
|
allow negative icon index values in Class, ProgId,
|
||
|
and Shortcut tables.
|
||
|
|
||
|
98-11-19 mattwe Fixed bug 7758: When an environment variable wasn't
|
||
|
found in the autoexec.bat file, we were adding it
|
||
|
even if the authoring said to remove it.
|
||
|
|
||
|
Fixed bug 7759: When an environment variable was
|
||
|
supposed to do nothing during an install or uninstall
|
||
|
we were doing the default behavior instead.
|
||
|
|
||
|
98-11-19 malcolmh Fixed bug 7760. We have a new event log message for
|
||
|
component detection failures.
|
||
|
|
||
|
98-11-19 malcolmh Fixed bug 7756: can't see Darwin UI (installs
|
||
|
silently) so that it looks like hang in some situation
|
||
|
|
||
|
98-11-19 bench bug 7751: custom actions are now allowed to hide the
|
||
|
cancel button by using the INSTALLMESSAGE_COMMONDATA
|
||
|
type in a call to MsiProcessMessage.
|
||
|
|
||
|
98-11-19 malcolmh Fixed bug 7732: x86 Custom actions of type 1 running
|
||
|
on service side in wx86 emulation fail
|
||
|
|
||
|
98-11-19 malcolmh Fixed bug 7739: MsiReadRecordStream( ) doesn't set
|
||
|
pchDataBuf to actual number of chars read on output
|
||
|
|
||
|
98-11-19 malcolmh Fixed bug 7728: Service runs out of memory and hangs
|
||
|
|
||
|
98-11-18 bench bug 7723: added File and Media tables to
|
||
|
minimum.msi, as these are unfortunately required in 1.0 Darwin.
|
||
|
|
||
|
98-11-17 bench bug 7687: we will know prompt for reboot in the
|
||
|
following situation: we attempt to uninstall a file and
|
||
|
can neither delete the file or rename the file. this
|
||
|
will occur for in-use files on Win9X, and in-use
|
||
|
files on NT can usually be renamed at least. Note this
|
||
|
is a change in behaviour from previous builds when we
|
||
|
would prompt for reboot only when installing OVER an
|
||
|
in-use file.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4717
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-16 cgouge mergemod.dll is now built as part of every build. It
|
||
|
is only built as part of "all" in unicode builds.
|
||
|
|
||
|
98-11-16 bench bug 7567: added DisableRollback action. see doc bug
|
||
|
7706 for more information.
|
||
|
|
||
|
98-11-16 cgouge Validation: Fixed bug 7675. New ICE52 that checks
|
||
|
for non-public properties in AppSearch table.
|
||
|
|
||
|
98-11-16 cgouge Validation: Fixed bug 7676, updated sequence
|
||
|
validation to explicitly check SetODBCFolders sequence
|
||
|
restrictions.
|
||
|
|
||
|
98-11-13 cgouge Bug 7673. Removed MS-Specific EULA from
|
||
|
template.msi. Also cleaned up CCPFail message.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4713
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-12 mattwe Fixed bug 7622 - Commit custom actions don't work
|
||
|
when rollback is disabled. InstMsi/CopyMsi no longer
|
||
|
use them.
|
||
|
|
||
|
98-11-11 malcolmh Fixed bug 7627. ERROR_MORE_DATA return not correct
|
||
|
from remoted Ansi APIs.
|
||
|
|
||
|
98-11-11 malcolmh Fixed bug 7629: Set DISABLEROLLBACK property when
|
||
|
rollback is disabled
|
||
|
|
||
|
98-11-11 eugend fixed bug # 7505. From now on controls will create
|
||
|
fonts using the database's code page when it comes to
|
||
|
choose the font's character set (vs. the system's
|
||
|
code page as returned by GetACP() that was used so far).
|
||
|
This ensures that the information in the database will
|
||
|
be displayed properly (provided there is language support
|
||
|
on the machine).
|
||
|
|
||
|
Exceptions to this are the Edit, DirectoryList and
|
||
|
DirectoryCombo controls that will always use fonts in
|
||
|
the user's default UI character set. Another
|
||
|
exception is the Text control if it has the UsersLanguage
|
||
|
stylebit (value = 0x100000) set - this is useful for
|
||
|
displaying text the user entered in Edit or PathEdit
|
||
|
controls.
|
||
|
|
||
|
I've open the following DOC bugs related to this:
|
||
|
- 7631 on the UsersLanguage stylebit
|
||
|
- 7632 requests not to use "__UL" suffix in identifiers in
|
||
|
TextStyle table's, TextStyle column.
|
||
|
- 7633 requests the presence of DefaultUIProperty in
|
||
|
packages that have UI.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4711
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-10 chetanp bug 7261- On NT5, for a component with a file key
|
||
|
path, we now register an auxiliary HKCR registry key
|
||
|
path from the Registry table, if one exists for that
|
||
|
component. This is to handle scenarios where a product
|
||
|
is (user) installed by one user on a machine and then
|
||
|
another user attempts to install the same product on
|
||
|
the same machine. Components that have a file key
|
||
|
path will not be implicitly reinstalled as they appear
|
||
|
already installed. Adding the auxiliary key path will
|
||
|
have the effect of making the component appear
|
||
|
broken (and rightly so, since it is missing the corr. HKCR
|
||
|
info for that user) and cause darwin to reinstall
|
||
|
the component.
|
||
|
|
||
|
98-11-10 bench Added a new property, called "ProductState", which
|
||
|
identifies the current state of the product, and can
|
||
|
be used to determine if the product is advertised but
|
||
|
not installed, or installed for a different user.
|
||
|
the value of the property is identical to the
|
||
|
INSTALLSTATE returned by MsiQueryProductState. see bugs 7570
|
||
|
and 7610 for more info.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4710
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-10 johndelo Improved logic for selecting basic UI language/codepage.
|
||
|
Before the package is opened (or it is truly neutral),
|
||
|
when selecting a language to display to the user, we
|
||
|
use the new API GetUserDefaultUILanguage when available
|
||
|
(which is set under NT5 locale panel: Dialogs and Menus).
|
||
|
The property, PackageLanguage, which normally must match
|
||
|
the SummaryInformation language (Template property, 7),
|
||
|
is ultimately used to select the language for dialog
|
||
|
text and buttons loaded from the resources in MSI.DLL,
|
||
|
and could be changed by externally applied transforms.
|
||
|
Fonts are selected based on the codepage of the text data.
|
||
|
Database strings use the codepage of the database strings.
|
||
|
Resource strings use the default codepage for their language.
|
||
|
List/comboboxes use the system codepage on Win9X,
|
||
|
or the codepage of the user language on NT. As always, it
|
||
|
is imperative that the codepage of MSI or MST be set properly.
|
||
|
If all the strings in the database are ASCII text, then the
|
||
|
codepage should be 0, to allow using font better for user data.
|
||
|
|
||
|
98-11-08 cgouge Fixed Bug 7501. We now set the "TerminalServer"
|
||
|
property if Windows Terminal Server is detected.
|
||
|
Otherwise the property is undefined.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4706
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-05 chetanp bug 7559 - fix ixoComponentRegister operation's
|
||
|
rollback which was broken for components registered run
|
||
|
from source (both file and registry key path
|
||
|
components).
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4704.1
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-05 davidmck Fixed bug 7460. For the Wx86 registry keys we were
|
||
|
not handling the AddRef and Release code correctly.
|
||
|
Needed to add the four cases to those functions.
|
||
|
|
||
|
98-11-04 cgouge Fixed Bug 7491, MsiProcessMessage fields getting
|
||
|
reset during first progress message call. The two cases
|
||
|
where the records were modified now use their own
|
||
|
private records instead of the user record.
|
||
|
|
||
|
98-11-04 bench bug 7532: fixed bug that prevented using MoveFiles
|
||
|
to rename a file without moving from one directory to
|
||
|
another.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4704
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-03 bench bugs 7195 and 7492: fixed unformatted event log
|
||
|
messages (%temp%\msievent.log on Win9X) written by ship
|
||
|
Darwin.
|
||
|
|
||
|
98-11-03 mattwe bug 7467: We now acquire the SE_RESTORE_NAME privilege
|
||
|
to set the owner on files. This sometimes ends up
|
||
|
up with replacing a file, and the file is still marked
|
||
|
as being owned by the initial person to install the
|
||
|
file. However, we cannot let someone own a file
|
||
|
that we had to elevate to write to.
|
||
|
|
||
|
98-11-03 bench bug 7425: we now flush the rollback script with each
|
||
|
rollback opcode to ensure the script contains all
|
||
|
information necessary to completely rollback system
|
||
|
changes. previously, the rollback script would be
|
||
|
missing the last opcodes in case of a machine crash, and
|
||
|
not all changes could be rolled back.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4703
|
||
|
-----------------------------
|
||
|
|
||
|
98-11-02 bench bug 7466: when patching an admin image, we now
|
||
|
update the summary information of the admin package as
|
||
|
well as persisting transforms to the database. the
|
||
|
summary information properties that are updates are the
|
||
|
PackageCode, Comments and Subject. the values used to
|
||
|
update these properties are read from the
|
||
|
PATCHNEWPACKAGECODE, PATCHNEWSUMMARYSUBJECT and
|
||
|
PATCHNEWSUMMARYCOMMENTS properties, which are added by the
|
||
|
patch-only ('#') transforms of the patch package.
|
||
|
|
||
|
98-11-02 cgouge Bug 7462. Logging enabled in verbose mode for Wx86
|
||
|
emulation mode on Alpha.
|
||
|
|
||
|
98-11-02 bench Bug 7458: cancelling install during binary patching
|
||
|
would leave behind temp files and could also lead to
|
||
|
an AV. fixed by allowing patching thread to finish
|
||
|
before attempting cleanup or releasing memory used by
|
||
|
thread when the user cancels midway through a patch.
|
||
|
|
||
|
98-11-02 malcolmh Fixed bug 7489. Increased the ship timeout to 30
|
||
|
minutes.
|
||
|
|
||
|
98-11-02 malcolmh Fixed bug 7424: Dariwn should better handle corrupt
|
||
|
packages.
|
||
|
|
||
|
98-10-30 davidmck Fixed Bug 7488, we were enumerating drives twice in
|
||
|
some cases because we needed an ELSE in
|
||
|
EnumDriveTypes.
|
||
|
|
||
|
98-10-30 tracyf Bug 7431: when prompting the user for a CD, we now
|
||
|
wait up to 10 seconds before complaining that we can't
|
||
|
find the disk, to give the CD a chance to spin up.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4630
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-29 cgouge Bug 7013, Validation. New ICE50, checks Icon.Name to
|
||
|
ensure that advertised shortcuts using the icon will
|
||
|
have correct context menus and will display the
|
||
|
icon.
|
||
|
|
||
|
98-10-29 bench Bug 7419: fixed timeouts during patch application
|
||
|
|
||
|
98-10-29 mattwe Bug #7380: shfolder.dll is now installed on all
|
||
|
platforms, not just 9X. Added alpha version to
|
||
|
%darwin%/tools/bin/alpha
|
||
|
|
||
|
98-10-29 mattwe Bug #7387: removing registry values for the name "*"
|
||
|
now properly work when there is a value. (Does not
|
||
|
delete the whole key unless the value is *blank*)
|
||
|
|
||
|
98-10-28 cgouge Bug 7447 - Validation, ICE 51. Checks fonts for
|
||
|
titles. TTC/TTF fonts should not have them, everything
|
||
|
else should.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4628.1
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-28 bench bug 7453: when determining source type we would
|
||
|
sometimes use the name of the cached msi when looking for
|
||
|
the sourc msi. bug introduced in 4628 and fixed in
|
||
|
4628.1.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4628
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-28 chetanp bug 7317 - As a result of fixing darwin bug 7317 the
|
||
|
Extension.ShellNew and Extension.ShellNewValue
|
||
|
columns have been removed. We now no longer write these
|
||
|
keys from the Extension table. Instead, it is expected
|
||
|
that the author author this information in the
|
||
|
Registry table. These changes have warranted a schema
|
||
|
change and we are now at schema 30. However we are still
|
||
|
compatible with the older databases (>= 26) and the
|
||
|
behaviour is unchanged for the older databases (i.e. we
|
||
|
use the Extension.ShellNew and
|
||
|
Extension.ShellNewValue columns at advertisement).
|
||
|
|
||
|
|
||
|
98-10-27 chetanp bug 7372 - added support to generate the FontTitle
|
||
|
for a TTC file, if not provided in the Font.FontTitle
|
||
|
column.
|
||
|
|
||
|
98-10-27 chetanp bug 7383 - we now set the %windir%\ttfcache file for
|
||
|
deletion pending reboot, in case we install a ttc
|
||
|
font file to a win9x machine.
|
||
|
|
||
|
98-10-27 chetanp bug 7388 - we now have a new
|
||
|
MsiProvideQualifiedComponentEx API that takes an extra szProduct arg. When
|
||
|
this arg. is specified we search for a qualified
|
||
|
component published by that product , else we fail (NOTE:
|
||
|
we do not fall back to using another Darwin
|
||
|
Descriptor). If szProduct is null we work the same as
|
||
|
MsiProvideQualifiedComponent.
|
||
|
|
||
|
98-10-27 johndelo ----Transform viewer implemented internally in Msi.dll----
|
||
|
To invoke transform view mode, open the reference database normally,
|
||
|
then use the flag MSITRANSFORM_ERROR_VIEWTRANSFORM in MsiDatabaseApplyTransform.
|
||
|
This flag then stops the transform from being applied to the database,
|
||
|
and instead dumps the contents into a read-only temporary table, _TransformView.
|
||
|
This table can then be accessed with normal SQL queries, and is never persisted.
|
||
|
Table is held in memory by a lock count, that can be released with a SQL command
|
||
|
"ALTER TABLE _TransformView FREE".
|
||
|
The table is not cleared when new transforms are applied resulting in successive
|
||
|
application of the transforms. Release the table to view transforms separately.
|
||
|
|
||
|
---SCHEMA FOR _TransformView TABLE---
|
||
|
|
||
|
Table CHAR, PK name of altered table
|
||
|
Column CHAR, PK name of column, or: INSERT, DELETE, CREATE, or DROP
|
||
|
Row CHAR, PK row: primary key values, tab separated, NULL if schema change
|
||
|
Data CHAR data (name of stream if stream data), or column definition
|
||
|
Current CHAR current value from reference database, or column number
|
||
|
|
||
|
Therefore the various transform operations are indicated as below:
|
||
|
---DML ops---
|
||
|
Modify data: {table} {column} {row} {data} {current value}
|
||
|
Insert row: {table} "INSERT" {row} NULL NULL
|
||
|
Delete row: {table} "DELETE" {row} NULL NULL
|
||
|
---DDL ops---
|
||
|
Add column: {table} {column} NULL {defn} {column number}
|
||
|
Add table: {table} "CREATE" NULL NULL NULL
|
||
|
Drop table: {table} "DROP" NULL NULL NULL
|
||
|
|
||
|
To form the row ID, the primary key values are concatenated, tab separated.
|
||
|
Null primary key values are represented by a single space character.
|
||
|
|
||
|
Scripts have been checked in to call the APIs and view the result table,
|
||
|
and are available as well in \\dartools\distrib\Viewers.
|
||
|
WshTranV.vbs - VBScript for Windows Scripting Host - CScript.EXE
|
||
|
TranView.vbs - VBScript to be run with RunScrpt.EXE (Darwin NT-only tool)
|
||
|
The latter script also has a Diff function for comparing databases.
|
||
|
Use ? or Help on the command line for the command syntax.
|
||
|
|
||
|
98-10-27 johndelo Bug 7399. We now attempt to find a SansSerif font when the package is
|
||
|
not in the system codepage, avoiding the ugly Serif fonts that were seen.
|
||
|
|
||
|
98-10-27 cgouge Bug 7081. Validation. New ICE48, checks for
|
||
|
"hardcoded" directories, that is, directories that are also
|
||
|
keys in the Property table. Provides a warning for
|
||
|
each case.
|
||
|
|
||
|
98-10-27 cgouge Bug 7401. Validation. ICE49 checks for default reg
|
||
|
entries (no name) that are not REG_SZ. (for Win95).
|
||
|
|
||
|
98-10-27 cgouge Bug 7430. Validation support for new Admin image
|
||
|
flag in SummaryInfo stream. ICE39 now gives a warning if
|
||
|
this bit is set.
|
||
|
|
||
|
98-10-27 bench bug 7015: fixed post-admin installs from packages
|
||
|
with files marked "compressed" in the File.Attributes
|
||
|
column. admin images are fully uncompressed, even for
|
||
|
files marked compressed. this is to allow patches
|
||
|
to update any files in an admin image. as a result,
|
||
|
we now ignore the compressed bit when installing from
|
||
|
an admin image. to designate a package as being in
|
||
|
an admin image, a new bit was added to the "source
|
||
|
type" summary info property. the possible values are
|
||
|
now 0-5, where 4 is admin with LFN and 5 is admin with
|
||
|
SFN.
|
||
|
|
||
|
98-10-27 davidmck Fixed bug 7418, needed to handle the ifiAccessDenied
|
||
|
return from GetAllFileVersionInfo.
|
||
|
|
||
|
98-10-27 malcolmh Fixed bug 7410: reinstallmode /V doesn't work when
|
||
|
the package code changes
|
||
|
|
||
|
98-10-27 malcolmh Fixed bug 7398: "TransformsSecure" policy set causes
|
||
|
MsiAdvertiseScript to register garbage transform
|
||
|
list.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4627
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-27 cgouge Bug 6555. Validation, new ICE 46. Checks
|
||
|
definition/usage of properties for differences in case, flagging
|
||
|
potential mistakes with a warning.
|
||
|
|
||
|
98-10-26 malcolmh Fixed bug 7122. changing package codes for the same
|
||
|
product are now rejected unless you specify /fv
|
||
|
|
||
|
|
||
|
98-10-26 mattwe Bug 7354: Re-arranged supported platform list
|
||
|
in instmsi/copymsi to work-around alpha only bug
|
||
|
#7422
|
||
|
|
||
|
98-10-26 mattwe Bug 7404: Instmsi/CopyMsi now put explicit
|
||
|
accellerators on install/uninstall/apply verbs.
|
||
|
With the explicit '&' the first letter works,
|
||
|
but it isn't underlined in the UI.
|
||
|
|
||
|
98-10-26 bench bug 7338: added a new bit to the File.Attributes
|
||
|
field that designates a file as coming from a patch
|
||
|
package. the new bit is necessary to mark files that are
|
||
|
always compressed. formerly these files were marked
|
||
|
with the "compressed" bit, but this bit will be
|
||
|
ignored when installing from an admin image.
|
||
|
|
||
|
|
||
|
98-10-26 mattwe Fixed bug 7335 (reactivated for the system agent)
|
||
|
We can now tell the difference between when the
|
||
|
system agent is stopped, versus when it is paused.
|
||
|
|
||
|
98-10-26 malcolmh Fixed bug 3794. DISABLEMEDIA is now set only when
|
||
|
the summary source bit is set to compressed.
|
||
|
|
||
|
98-10-23 tracyf Per bug 7216, components can be flagged with the new
|
||
|
"Transitive" attribute bit (value: 64). If this bit
|
||
|
is set, then at reinstall time, if the component was
|
||
|
previously disabled but is now enabled, it will be
|
||
|
installed. If it was previously enabled, but is now
|
||
|
disabled, it will be removed. The primary motivation
|
||
|
for this bit is to allow applications to be upgraded
|
||
|
when the OS is upgraded, by simply running a
|
||
|
reinstall of the product. Note that, for "transitive"
|
||
|
components that are being removed on reinstall, the
|
||
|
Permanent bit is ignored. Even if the component has other
|
||
|
products as clients it will still be removed (with the
|
||
|
implicit understanding that the author has
|
||
|
conditioned another OS-specific component to be installed in
|
||
|
its place on upgrade).
|
||
|
|
||
|
|
||
|
98-10-23 mattwe Fixed bug 7365: InstMsi/CopyMsi no longer write
|
||
|
the Install To Network verbs.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4623
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-22 davidmck Fixed bug 7258 by increasing our default timeout in
|
||
|
Ship to 5 minutes.
|
||
|
|
||
|
98-10-22 mattwe Bug 7335: The screen saver and system agent now save their
|
||
|
initial states at the beginning of the execute mode, turn off
|
||
|
for the duration of the install, and then restore at the end
|
||
|
of execute mode. Exception: If the screen saver or the system
|
||
|
agent were off at the beginning of the install, and then
|
||
|
are turned on by the user during the install, we won't turn
|
||
|
them back off.
|
||
|
|
||
|
98-10-22 bench Bug 7376: when rolling back and restoring a file when the new
|
||
|
file was in use, we would replace the new file, but leave a
|
||
|
reboot operation to delete the file. for Office 2000, this
|
||
|
occurs when system files are replaced and an error occurs after
|
||
|
the mid-install reboot. rollback occurs and upon the next reboot
|
||
|
the system files are missing.
|
||
|
|
||
|
the fix was to avoid doing a Remove then Replace when copying
|
||
|
a backup file over a new file during rollback. we now just
|
||
|
do the replace.
|
||
|
|
||
|
98-10-22 mattwe Bug 6121: copymsi/instmsi, during an administrator
|
||
|
user's installation, now waits for the service
|
||
|
in the temp directory to stop before exiting.
|
||
|
This allows IExpress to fully clean up.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4621
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-20 malcolmh Fixed bug 7309: TransformSecure fails when passed as
|
||
|
property; 2 asserts Access Violation and locks the
|
||
|
MsiServer
|
||
|
|
||
|
98-10-20 bench bug 7209: fix a problem causing file to not be
|
||
|
updated when patching an admin image.
|
||
|
|
||
|
98-10-20 mattwe Bug 7088: backed out initial fix for 7088, and
|
||
|
implemented by adding new script type:
|
||
|
istAdminInstall. Same behavior as previous fix.
|
||
|
|
||
|
98-10-20 bench bug 7362: removed all unnecessary "uncompressed"
|
||
|
bits from File tables of released packages.
|
||
|
|
||
|
98-10-20 bench bug 7310: admin packages were not being restored by
|
||
|
rollback after a failed admin patch. they are now.
|
||
|
|
||
|
98-10-19 johndelo Bug 7277: Transform streams not marked as system.
|
||
|
Database table stream are flagged as system to keep their
|
||
|
namespace distinct from user streams such as cabinets and
|
||
|
binary streams. Transform table streams have been changed
|
||
|
to match the names of the corresponding database table streams.
|
||
|
Temporary compatibility is present to recognize streams
|
||
|
generated with older builds of MSI. However, transforms
|
||
|
generated with this build will not be useable on older builds,
|
||
|
unless either the databases had uncompressed stream names,
|
||
|
or the _MSI_TEST environment variable has the "z" option set.
|
||
|
|
||
|
98-10-19 cgouge Bug 6444, part 2. New ICE39, checks Summary
|
||
|
Information Stream for various 'bad things', such as bad
|
||
|
GUID, bad Template format, etc. This ICE is *NOT*
|
||
|
available through the web page, because ICEMAN does not
|
||
|
support Summary Info validation (coming in the future.)
|
||
|
You must have the new Evalcom (see below) for this ICE
|
||
|
to work via MsiVal2, etc. It will fail gracefully if
|
||
|
you do not.
|
||
|
|
||
|
|
||
|
98-10-19 mattwe Fixed bug 7088: Added a field to ixoHeader to indicate
|
||
|
the mode in which it was generated. (see msiauto.hlp)
|
||
|
|
||
|
We no longer register folders that are created during
|
||
|
an admin install. When we do register folders, a
|
||
|
failure will now be logged and ignored.
|
||
|
|
||
|
98-10-19 cgouge Bug 6444, part 1. In order to support SummaryInfo
|
||
|
validation, the validation startup routines in the
|
||
|
EvalCom COM server have been changed. This COM server is
|
||
|
used by MsiVal2 to do validaiton. The new system
|
||
|
takes advantage of the changes to MsiDatabaseMerge (Bug
|
||
|
7124) to generate better error messages in certain
|
||
|
failure cases. The new system creates the MSI engine
|
||
|
from the CUB file instead of from the merged database.
|
||
|
This change means that CUB files must now have an
|
||
|
empty property table in them to avoid asserts in the
|
||
|
DEBUG versions of Darwin. If you are using an older CUB
|
||
|
file with DEBUG Darwin, you will get asserts in
|
||
|
engine.cpp. Evalcom is also OS-independent now, the same
|
||
|
bits will work on ANSI and UNICODE.
|
||
|
|
||
|
98-10-16 cgouge Bug 7139. Validation: Updated internal validation
|
||
|
for Component.KeyPath entries that are keys into the
|
||
|
ODBCDataSource table.
|
||
|
|
||
|
98-10-16 cgouge Fixed bugs 7137, 7140, 7141. Updated _Vaidation
|
||
|
entries for TextStyle.StyleBits, Shortcut.ShowCmd,
|
||
|
ServiceInstall.StartType.
|
||
|
|
||
|
|
||
|
98-10-16 mattwe Fixed bug #7282: On rollback, registry keys will
|
||
|
be explicitly created by the RegCreateKey operation
|
||
|
unless they had an AddValue operation. This allows
|
||
|
the security settings to be reapplied.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4616
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-15 cgouge Validation: Bugs 6724 and 7129, part deux. ICE33
|
||
|
updated to no longer throw warnings when the registry
|
||
|
table is used to generate registry entries for
|
||
|
Insertable, NotInsertable.
|
||
|
|
||
|
98-10-15 tracyf Fixed bug 7010 - on Win9x, if the CRC check fails
|
||
|
(for files in the File table that have the HasChecksum
|
||
|
bit set), we now ignore this check if the file is in
|
||
|
use. This is because a Win9x bug prevents the
|
||
|
checksum from being calculated properly if the file is
|
||
|
loaded in memory.
|
||
|
|
||
|
98-10-15 malcolmh Fixed bug 7269: Files-in-use dialog sometimes
|
||
|
missing description.
|
||
|
|
||
|
98-10-15 malcolmh Fixed bug 7271. Source registration now works when
|
||
|
DISABLEMEDIA is set.
|
||
|
|
||
|
98-10-15 malcolmh Fixed bug 7279. Fixed Session.FeatureInfo automation
|
||
|
and typelib entry.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4614
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-13 chetanp bugs 6724 and 7129 - removed the Class.RemoteName,
|
||
|
Class.Insertable and ProgId.Insertable columns. The
|
||
|
Class.RemoteName column was never used. The
|
||
|
Class.Insertable and ProgId.Insertable columns were used to
|
||
|
advertise the OLE Insertable keys. We now no longer write
|
||
|
these keys from these advertise tables. Instead, it
|
||
|
is expected that the author authors this information
|
||
|
from the Registry table. This has warranted a schema
|
||
|
change and we are now at schema 29. However we are
|
||
|
still compatible with the older databases (upto and
|
||
|
including 26) and the behaviour is unchanged for the
|
||
|
older databases (ie we use the Insertable columns at
|
||
|
advt.).
|
||
|
|
||
|
98-10-13 chetanp bug 7263 - ensure product code is all upper case at
|
||
|
the beginning of the installation.
|
||
|
|
||
|
|
||
|
98-10-13 mattwe Fixed bug 7174: We now disable the screen saver during
|
||
|
the execute section, the re-enable it. (Performance.)
|
||
|
|
||
|
98-10-13 mattwe Fixed bug 7427: When restoring registry keys during
|
||
|
rollback with non-default security, we first create the
|
||
|
key with no security, then elevate and apply the security.
|
||
|
|
||
|
98-10-12 mattwe Fixed bug 7227. Releasing global data so service
|
||
|
|
||
|
98-10-13 malcolmh Fixed bug 7232. Fix custom action IDL to correctly
|
||
|
identify "out" string parameter sizes.
|
||
|
|
||
|
98-10-13 chetanp bug 7207 - feature's transition between the
|
||
|
advertise and the absent states should not affect the
|
||
|
component's state.
|
||
|
|
||
|
can be stopped. (introduced by bug 6922)
|
||
|
|
||
|
98-10-12 malcolmh Fixed bug 7235. We now correctly restore folder
|
||
|
security descriptors on rollback.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4609
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-08 bench bug 7193: fixed logging when triggered by the policy
|
||
|
value. previously we would keep overwriting a
|
||
|
single log in each install invoked by a process, so that
|
||
|
only the last install from the process was logged. we
|
||
|
now generate a new log for each install. in the
|
||
|
course of fixing this bug, new information was added to
|
||
|
the beginning of each verbose log: the date and time,
|
||
|
the type of Darwin build (ship/debug, ansi/unicode),
|
||
|
the Darwin build #, and the calling process.
|
||
|
|
||
|
98-10-08 chetanp bug 6961 - we now skip the conversion of the file
|
||
|
path to a short file path for InProcServers from the
|
||
|
Class table (so in effect only LocalServers are forced
|
||
|
to Short Paths).
|
||
|
|
||
|
98-10-08 chetanp bug 7201 - fix registration of features containing
|
||
|
components w/o component ids.
|
||
|
|
||
|
98-10-08 chetanp fixed bug 7020. We now allow > 200 components per
|
||
|
feature.
|
||
|
|
||
|
98-10-08 cgouge Bug 7124. MisDatabaseMerge now returns
|
||
|
ERROR_DATATYPE_MISMATCH when one or more tables in the database
|
||
|
have schema conflicts. It now does the schema checks
|
||
|
before merging any of the tables, so you won't get half
|
||
|
a merge anymore.
|
||
|
|
||
|
98-10-08 mattwe Bugs 6981, 7118: During rollback we now elevate and set
|
||
|
SeRestorePrivilege for writing security descriptors.
|
||
|
|
||
|
98-10-09 johndelo Bug 7186: Failure to open streams on Win98J with user
|
||
|
language set to English. Problem is that JPN maps DBCS
|
||
|
characters into the private use area of Unicode that we
|
||
|
were using for stream names. That alone is not so bad,
|
||
|
but when the user Language is set to English, then the
|
||
|
stream name processing gets messed up as the DBCS chars
|
||
|
are individually uppercased, causing failures. Simple fix
|
||
|
was to use a Unicode block unprocessed by any codepage.
|
||
|
However, databases produced with builds 4522 and later will
|
||
|
not be readable with this build. Either export the tables with
|
||
|
the old MSI version and reimport them with the current build,
|
||
|
or use the tool 4524Fix.exe, checked into Darwin project, and
|
||
|
also available on \\JDELO3\public\tools. MsiInfo.exe and
|
||
|
DBView.exe have been updated for the new stream name offset.
|
||
|
Build 4524 has been rebuilt with this fix -> now 4524.6
|
||
|
Transforms are affected as well, and the tool will update them.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4607
|
||
|
-----------------------------
|
||
|
|
||
|
98-10-06 cgouge Bug 6931: Validation aspect of Truetype fonts always
|
||
|
being reinstalled. Rows in the file table are now
|
||
|
allowed to have a null language value iff a row in the
|
||
|
font table references the file.
|
||
|
|
||
|
98-10-06 mattwe Bug 7001: GetRelativeSourcePath now accepts / or \
|
||
|
at the end of a path... Adds support for URLs.
|
||
|
|
||
|
98-10-06 cgouge Bug 7110: Internal field validation. Cabinet data
|
||
|
type now accepts only SFN instead of short|long syntax.
|
||
|
|
||
|
98-10-06 mattwe Bug 6661: Checked in new versions of wextract.exe,
|
||
|
iexpress.exe, and makecab.exe to fix DBCS bugs in
|
||
|
their extraction for instmsi/copymsi.
|
||
|
|
||
|
98-10-05 cgouge Bug 7126: Validation: ICE20 no longer checks for the
|
||
|
DiskCost dialog.
|
||
|
|
||
|
98-10-05 cgouge Bug 7117: Validation: ICE19 changed so that
|
||
|
non-advertised shortcuts are exempt from the
|
||
|
Component-Id/KeyPath checks.
|
||
|
|
||
|
98-10-05 cgouge Bug 7098. Validation: ICE45 checks unused bits in a
|
||
|
bunch of tables' bitfields to make sure they are 0.
|
||
|
(Related to Bug 7078) TestDb was updated to pass this
|
||
|
new ICE, since we had a few random bits set in the
|
||
|
BBControl table.
|
||
|
|
||
|
98-10-02 malcolmh Fixed bug 6943: We now use the cached database
|
||
|
during database copy, *except* for nested installs which
|
||
|
continue to copy the source database.
|
||
|
|
||
|
98-10-02 malcolmh fixed bug 6922. we now register ODBC data source
|
||
|
component key paths correctly.
|
||
|
|
||
|
98-10-02 bench bug 7096: we now disable the Cancel button during
|
||
|
cleanup of rollback files.
|
||
|
|
||
|
98-10-02 cgouge Bug 6606. MsiInfo now reports an error if you have
|
||
|
chars > 0x7F in your database but don't have a
|
||
|
codepage set, and will also report an error if you have any
|
||
|
DBCS strings that are corrupted because you forced
|
||
|
the codepage after the data was already in the
|
||
|
database.
|
||
|
|
||
|
98-10-01 bench bug 7015: a change to admin installs when certain
|
||
|
files in the File table are marked with the
|
||
|
"compressed" attribute bit. any cabinets containing files files
|
||
|
are copied to the admin install, so that post-admin
|
||
|
installs will correctly find the compressed files
|
||
|
(since they are marked compressed, they are assumed to
|
||
|
be compressed regardless of the global "source type").
|
||
|
also, embedded cabinets containing these types of
|
||
|
files are not dropped from the package when it is
|
||
|
copied to the admin image.
|
||
|
|
||
|
98-10-01 malcolmh Fixed bug 7089: Darwin occasionally generates script
|
||
|
with bad packagename value
|
||
|
|
||
|
98-10-01 cgouge Bug 6888. Field validation for filenames updated to
|
||
|
treat '*' charaters as 0 or more chars instead of 2
|
||
|
or more.
|
||
|
|
||
|
98-10-01 bench bug 6960: when rebooting on Win9X, we would leave
|
||
|
behind the .msi file in the %temp% folder. this was
|
||
|
caused by attempting to delete the temp msi after
|
||
|
calling ExitWindowsEx. on Win9X, there is not enough time
|
||
|
to do this before the system shuts down. the fix
|
||
|
was to reboot after deleting the temp msi.
|
||
|
|
||
|
98-10-01 cgouge Fixed Bug 7041. msidb fixed to work with the new
|
||
|
stream and storage APIs. It now correctly handles both
|
||
|
compressed and uncompressed stream names. The new
|
||
|
system allows streams and storages to have the same
|
||
|
names (because the stream name is actually compressed),
|
||
|
so the -k and -x actions had to be split. -k and -x
|
||
|
work with streams, wheras -j and -w remove and extract
|
||
|
storages.
|
||
|
|
||
|
98-10-01 malcolmh Fixed bug 7059: Custom action server needs to
|
||
|
initialize the allocator
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4530
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-28 cgouge Bug 7040. ICE44. Checks that ConttrolEvents
|
||
|
involving dialogs (NewDialog, SpawnDialog, SpawnWaitDialog),
|
||
|
have arguments that are valid foreign keys into the
|
||
|
Dialog table.
|
||
|
|
||
|
98-09-28 cgouge Bug 6846, validation. ICE43 checks that
|
||
|
non-advertisable shortcuts are in components that use HKCU reg
|
||
|
entries as keypaths. This prevents the case where
|
||
|
multiple users on a machine run the install and only the
|
||
|
first user gets the shortcuts.
|
||
|
|
||
|
98-09-28 chetanp undid bug 4265 fix. We now (again) suport database
|
||
|
versions 26 upwards.
|
||
|
|
||
|
98-09-28 malcolmh Fixed bug 7051: MsiGetActiveDatabase returns wrong
|
||
|
error.
|
||
|
|
||
|
98-09-28 malcolmh Fixed bug 7037. We now set the Privileged property
|
||
|
correctly on Win9X and when the user is an Admin.
|
||
|
|
||
|
98-09-28 malcolmh Fixed bug 6943. We now used the cached database
|
||
|
during RegisterProduct.
|
||
|
|
||
|
98-09-28 malcolmh Fixed bug 6553. We now elevate self-reg correctly
|
||
|
when the AlwaysInstallElevated policy is set.
|
||
|
|
||
|
98-09-25 cgouge Bug 7022, Validation. Removed restriction that
|
||
|
InstallFiles must come before RemoveShortcuts.
|
||
|
|
||
|
98-09-25 malcolmh Fixed bug 6962. We wouldn't reboot non-managed apps
|
||
|
when the UI level was Basic or None. We now do.
|
||
|
|
||
|
98-09-25 bench Bug 6987: the ARPNOMODIFY property, when set, will
|
||
|
cause the UninstallString written to the Uninstall key
|
||
|
(and used by downlevel ARPs) to contain the command
|
||
|
line to uninstall, rather than configure. This can
|
||
|
be used by packages without UI to uninstall through
|
||
|
the Add/Remove Control Panel. Previously, the
|
||
|
Uninstall string was always to configure, which was useless
|
||
|
for packages without UI.
|
||
|
|
||
|
NOTE: this new behaviour is only applicable on NT4 and Win9X,
|
||
|
as the NT5 ARP doesn't use the Uninstall string.
|
||
|
|
||
|
NOTE2: as always, the ARPNOREMOVE property causes no
|
||
|
UninstallString to be written at all, and the package will
|
||
|
not show up in the ARP.
|
||
|
|
||
|
98-09-24 cgouge Bug 6010. Validation. ICE29 modified to accept new
|
||
|
62 character stream name limitation from 6539.
|
||
|
|
||
|
98-09-24 chetanp bug 7014 - decoupled darwin cnfg. information
|
||
|
registry location from the HKEY passed in to
|
||
|
MsiAdvertiseScript. We now always autonomously decide on where the
|
||
|
darwin cnfg. info should go. Also we now classify the
|
||
|
PublishComponent stuff as SCRIPTFLAGS_CNFGINFO
|
||
|
rather than SCRIPTFLAGS_APPINFO.
|
||
|
|
||
|
98-09-24 mattwe Fixed bug 7009: installing files with lock permissions
|
||
|
works again.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4522
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-22 johndelo Localized resources updated in MSI.DLL from \\RobR\msires
|
||
|
New languages: French, Dutch, Finnish, and Hungarian.
|
||
|
Updated all others: DEU,ARA,CHS,CHT,JPN,KOR,THA,GRK.
|
||
|
|
||
|
98-09-22 johndelo Bug 6539 - Broken OLE32.DLL supplied with IE 4.01 SP1, Win98
|
||
|
The bad DLL version is now detected at load time, and a
|
||
|
workaround is enabled that corrects the faulty code.
|
||
|
Compressed stream naming is now re-enabled, and the
|
||
|
_MSI_TEST 'Z' now disables the name compression (temporarily).
|
||
|
For a short period of time, the uncompressed/unqualified
|
||
|
stream names can be forced with open flags. For complete
|
||
|
details, see the notes below from 98-08-18.
|
||
|
NOTE: You cannot directly add streams to an MSI file.
|
||
|
You must use the _Streams pseudo-table and the APIs.
|
||
|
|
||
|
98-09-21 chetanp fixed bug 6804 - we now remember the flags passed in
|
||
|
to MsiAdvertiseScript so that we know if shortcuts
|
||
|
and OLE and Qualified Components info had been created
|
||
|
for the app. If not create we create the same during
|
||
|
the first run of the app.
|
||
|
|
||
|
98-09-21 chetanp fixed bug 6435 - in order to ensure that darwin
|
||
|
cnfg. data for user assigned apps is secure, we have
|
||
|
shifted the location of the info from HKCU\S\C\Installer
|
||
|
to
|
||
|
HKLM\S\M\W\CurrentVersion\Installer\Managed\<SID>\Installer. Also we replicate all info for assigned
|
||
|
apps in the non-assigned location as well
|
||
|
(HKCU\S\Microsoft\Installer), in order to support roaming (albeit
|
||
|
the app working as unassigned).
|
||
|
|
||
|
98-09-18 mattwe Fixed bug 6340 related to IE3. WININET functions are
|
||
|
in the DLL shipped in IE3, but return call not
|
||
|
implemented. I've done scaled down versions of these,
|
||
|
that are called only when not available in WININET.
|
||
|
|
||
|
98-09-18 mattwe Fixed bug 6935: Internet downloads were unable to
|
||
|
be brought up in maintenance mode to a source list bug.
|
||
|
|
||
|
98-09-17 malcolmh Fixed bug 6918: Handle network error during database
|
||
|
copy.
|
||
|
|
||
|
98-09-17 malcolmh Fixed bugs:
|
||
|
6402 SECURITY: Non-managed app can run elevated
|
||
|
during class activation. We now maintain ACL's on
|
||
|
destination files during Filecopy (unless LockPermissions
|
||
|
specifies an ACL for the file).
|
||
|
|
||
|
6813: Maintenance mode after domain change keeps
|
||
|
looking for source even after you cancel.
|
||
|
|
||
|
98-09-17 bench Bug 6910: we now write UpgradeCode information
|
||
|
during advertisement as well as installation. Two new
|
||
|
opcodes were added to accomplish this:
|
||
|
ixoUpgradeCodePublish and ixoUpgradeCodeUnpublish.
|
||
|
|
||
|
98-09-16 malcolmh Fixed bug 6847: MsiEnumComponentQualifiers misses
|
||
|
per-user data
|
||
|
|
||
|
98-09-16 malcolmh Fixed bug 6895: Text in basic UI changes to bold. We
|
||
|
now set the message context language to the
|
||
|
package's base language very early in the install.
|
||
|
|
||
|
98-09-16 bench Bug 6624: fixed a crash when changing a key name in
|
||
|
a record containing a stream. When changing the key
|
||
|
value to a large string, the stream name computed may
|
||
|
become larger than 32 characters, which is not
|
||
|
supported by OLE. we were not handling this error
|
||
|
gracefully.
|
||
|
|
||
|
98-09-16 mattwe Fixed bug 6907: cleared a dirty record that
|
||
|
was being re-used by RegAddvalue.
|
||
|
|
||
|
98-09-16 mattwe Fixed bug 6872: You can now stop the service
|
||
|
after an uninstall.
|
||
|
|
||
|
DEVELOPER NOTE: If you allocate a global
|
||
|
object that holds on to a services object,
|
||
|
it must be released by the time the last
|
||
|
FreeServices() call is made for that install.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4516
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-15 cgouge Fixed Bug 6613. Validation. Fixed ICE38 to handle
|
||
|
non-root flagged root profile directories. Also fixed
|
||
|
AppDataFolder check. No longer goes into an infinite
|
||
|
loop due to the new ICE33.
|
||
|
|
||
|
98-09-15 cgouge Bug 6152. Validation: New ICE33. Checks the registry
|
||
|
table and finds registry entries that collide with
|
||
|
(or should be generated through) the Class, Extension,
|
||
|
ProgID, MIME, etc. tables. The information on what
|
||
|
is a "bad" registry entry is encoded in the
|
||
|
_BadRegData table which is provided with the CUB file.
|
||
|
|
||
|
98-09-15 bench Bug 6852: we now catch duplicate window titles in
|
||
|
the basic UI FilesInUse dialog. the main purpose of
|
||
|
this is to prevent the same process from being listed
|
||
|
multiple times.
|
||
|
|
||
|
98-09-15 tracyf Bug 6834: the SelectionTree menu choices have been
|
||
|
re-ordered slightly, separators have been added, and the
|
||
|
drop-down menu itself is now drawn with a nice gray
|
||
|
background.
|
||
|
|
||
|
98-09-14 bench Bug 6841: improved Files-In-Use logging, and fixed
|
||
|
bug that prevented FIU logging on NT (when the server
|
||
|
was registered)
|
||
|
|
||
|
98-09-14 malcolmh Fixed bug 6884: Darwin fails with C0000005
|
||
|
ACCESS_VIOLATION when passed long bogus MST path
|
||
|
|
||
|
|
||
|
98-09-14 cgouge Validation: Bug 6729. Added ICE42 which checks the
|
||
|
Class table for EXE files listed as InProc components.
|
||
|
Also checks non-LocalServer classes for
|
||
|
DefInProcHandler and Argument values.
|
||
|
|
||
|
|
||
|
98-09-14 malcolmh Fixed bugs:
|
||
|
|
||
|
6813 Maintenance mode after domain change keeps
|
||
|
looking for source even after you cancel
|
||
|
6854 "Error 2610. Launch condition failed:
|
||
|
[ProductNameNonQualified] setup needs to replace some Windows
|
||
|
system components" when starting drag and drop install
|
||
|
with non-admin user privilege
|
||
|
|
||
|
98-09-14 bench Bug 6855: fixed assert when installing over existing
|
||
|
ODBC info when rollback not enabled.
|
||
|
|
||
|
98-09-14 mattwe Fixed bug 6845: Service errors (start/stop/delete/
|
||
|
install) are now non-fatal during rollback.
|
||
|
The default response for no-UI is now to ignore them.
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4511.1
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-11 malcolmh Fixed bugs:
|
||
|
|
||
|
Fixed DLL custom actions so that they aren't always
|
||
|
async:
|
||
|
6106 Default CD key invalid on NT5 O9 install
|
||
|
6865 Error 2707: Target Paths Not Created for opcd0
|
||
|
in Directory Table
|
||
|
6873 validation: can't specify
|
||
|
specific ICE's to run on command line for msival2
|
||
|
|
||
|
Allowed column 32 to be created if it's temporary:
|
||
|
6866 Transforms: Creating the 32nd MarkingColumns for Transforms
|
||
|
and merges of 31col tables triggers assert
|
||
|
|
||
|
Temporarily hacked around an instance-count problem. Real fix
|
||
|
will be done at some point:
|
||
|
6872 Msiexec /unreg failed after install/remove testdb.
|
||
|
|
||
|
Added descriptsions for IMsiCustomAction and IMsiRemoteAPI
|
||
|
6860 AF in module.h running regmsi
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4511
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-10 mattwe Progress on bug 6363: We've added code for instmsi/
|
||
|
copymsi to use the appropriate transform for
|
||
|
languages. All that's needed is to add the transforms
|
||
|
as they come from the localizers.
|
||
|
|
||
|
98-09-10 cgouge Fixed bug 3729, Validation: added to ICE40 check for
|
||
|
RemoveIniFile.Value null when action is 4 (Remove
|
||
|
Tag)
|
||
|
|
||
|
98-09-10 malcolmh Fixed bug 6833: Elevated state bit not persisted for
|
||
|
use on uninstall/maintenance mode
|
||
|
|
||
|
98-09-10 cgouge Validation: Bug 6590, New ICE41. Validates that
|
||
|
Class and Extension table reference components that are
|
||
|
associated with the referenced Features.
|
||
|
|
||
|
98-09-10 malcolmh Fixed bug 6362: darwin hangs during execution with
|
||
|
logging enabled
|
||
|
|
||
|
98-09-10 malcolmh Fixed bug 6791: Assertion failed in
|
||
|
database.cpp:Line 3761 when running Tranform tests.. *We now restrict
|
||
|
tables to 31 columns*
|
||
|
|
||
|
98-09-10 chetanp bug 6801 - fix MsiViewModify with Refresh failure on
|
||
|
stream objects
|
||
|
|
||
|
98-09-10 mattwe Fixed bugs 6678, 6716: We've trashed the custom
|
||
|
action in instmsi/copymsi that registered verbs.
|
||
|
We're going to have to use transforms for the rest
|
||
|
of the strings, so we might as well transform
|
||
|
these as well. The bugs deal with the format
|
||
|
and content of the verbs, which are now standardized.
|
||
|
|
||
|
98-09-10 malcolmh Fixed bug 6495: AD: Potential security hole in
|
||
|
Darwin's custom action handling. We now run DLL custom
|
||
|
actions for non-managed apps in a separate process.
|
||
|
|
||
|
98-09-10 bench Bug 6340: fixed URL download installs on platforms
|
||
|
where cached files have different names than the
|
||
|
original files from the http: or ftp: server. We were not
|
||
|
using the new name in the cache which caused "source
|
||
|
file not found" errors.
|
||
|
|
||
|
98-09-10 malcolmh Fixed bug 6674: Transform: GenerateTransform asserts
|
||
|
on db with 32-Column tables. We error if you have >
|
||
|
31 columns in your table.
|
||
|
|
||
|
98-09-09 bench bug 6628: the typelib in msi.dll now references the
|
||
|
new html help file msi.chm instead of the old
|
||
|
msi.hlp.
|
||
|
|
||
|
98-09-09 davidmck Changed ODBC errors from debug to ship. Removing a
|
||
|
driver is now ignorable and can be retried.
|
||
|
|
||
|
98-09-09 mattwe Fixed bug 5469: Actually, I'm just the last
|
||
|
one in the chain. Ship errors should now
|
||
|
be finalized.
|
||
|
|
||
|
98-09-09 mattwe Fixed bug 5243: EditFlags for NT5 should be
|
||
|
binary, instead of DWORD for instmsi/copymsi
|
||
|
|
||
|
98-09-09 mattwe Fixed bug 5402: Instmsi/Copymsi will not install
|
||
|
on NT versions less than 4.0
|
||
|
|
||
|
98-09-09 mattwe Fixed bug 6630: Services feature will no longer
|
||
|
be available in TestDb without being a Privileged
|
||
|
install. (You must be either an admin, or have
|
||
|
all apps elevated, or have testdb assigned)
|
||
|
-----------------------------
|
||
|
Release 0.10.4509
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-08 cgouge Fixed bug 6765, added internal validation for the
|
||
|
[!filekey] sequence.
|
||
|
|
||
|
98-09-08 mattwe Bug 6722: two problems fixed. AppId table for
|
||
|
RunAsInteractiveUser and ActivateAtStorage should
|
||
|
work as described.
|
||
|
|
||
|
98-09-08 bench Bug 6786: when a user runs an install while another
|
||
|
install (run by a different user) is suspended, the
|
||
|
logged on user recieves a warning and is allowed to
|
||
|
continue, but the suspended install is not rolled back.
|
||
|
Previously, we would attempt to rollback the
|
||
|
suspended install, but this could lead to rolling back
|
||
|
items in the current users profile erroneously. A better
|
||
|
fix for this problem will be attempted in version
|
||
|
1.1.
|
||
|
|
||
|
98-09-08 bench Bug 6090: when a user runs an install with the
|
||
|
ForceReboot action and reboots, the following occurs when
|
||
|
a second user logs in after the reboot. If the
|
||
|
original install was per-machine, the second user is
|
||
|
allowed to continue the install. If the install was
|
||
|
per-user, the user is issued a warning and the install is
|
||
|
terminated (but the information about the suspended
|
||
|
install remains in the registry).
|
||
|
|
||
|
98-09-08 cgouge Validation: Bugs 6648, 6705. New ICE 40, performs
|
||
|
miscellaneous little checks that don't really belong
|
||
|
anywhere else. Right now this is just looking for a
|
||
|
missing error table and setting the REINSTALLMODE
|
||
|
property. Both are just warnings.
|
||
|
|
||
|
|
||
|
98-09-04 cgouge Bug 6790, Validation: ICE27 updated to handle new
|
||
|
AllocateRegistrySpace action.
|
||
|
|
||
|
98-09-04 davidmck Fixed bug 6799. Another issue with script
|
||
|
optimizations. ODBC actions zeroed out the opcode.
|
||
|
|
||
|
98-09-03 davidmck Fixed bug 6682. We still had some issues with
|
||
|
multiple threads adding strings to the string pool of the
|
||
|
database. This should clear them all up.
|
||
|
|
||
|
98-09-03 chetanp bug 5429 - added support for [!filekey] syntax
|
||
|
(Short File Path) for IniFile.Value column as well.
|
||
|
|
||
|
98-09-03 chetanp bug 6692 - honour
|
||
|
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST in MsiAdvertiseScript for unadvt. as well.
|
||
|
|
||
|
98-09-03 chetanp bug 6567 - remove AppId info advt.
|
||
|
|
||
|
98-09-03 bench Fixed bug 6694: crash when attempting to install
|
||
|
from ftp: server.
|
||
|
|
||
|
98-09-03 tracyf In response to bug 4755, the 'f' logmode flag has
|
||
|
been removed. Logging of file-in-use information is
|
||
|
now included as part of the 'i' flag.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4503
|
||
|
-----------------------------
|
||
|
|
||
|
98-09-03 johndelo bug 5567, and other language/resource basic UI bugs
|
||
|
We now use the database language and codepage to
|
||
|
obtain and display resource strings. Because we do
|
||
|
not set the language soon enough, if the language of
|
||
|
the user does not match the system, there is currently
|
||
|
a delay until the correct language appears (postponed bug).
|
||
|
All non-handler dialogs and message boxes use common
|
||
|
code that is language and charset aware, but there are
|
||
|
some cosmetic issues that will be cleaned up shortly.
|
||
|
All dialogs now use the common caption, which is initialized
|
||
|
with "Windows installer", but gets changed later.
|
||
|
The caption resource strings are gone, Yes and No added.
|
||
|
|
||
|
98-09-03 chetanp bug 6043 - added AVAILABLEFREEREG property to allow
|
||
|
author to specify the free registry space in KB
|
||
|
required by the app. This property is acted upon by the
|
||
|
new AllocateRegistrySpace action.
|
||
|
|
||
|
98-09-03 chetanp bug 6463 - added new DISABLEADVTSHORTCUTS property
|
||
|
to disable the advertisng/ creation of Darwin
|
||
|
shortcuts even on machines that support darwinised shortcuts.
|
||
|
Regular shortcuts are created inplace.
|
||
|
|
||
|
98-09-02 chetanp bug 6671 - moved WM_FONTCHANGE message posting to
|
||
|
execute to be once per install.
|
||
|
|
||
|
98-09-02 chetanp fixed bug 5429 - added support to write short file
|
||
|
names for long file name paths via the Registry.Value
|
||
|
column. The syntax for this is [!FileKey]. This
|
||
|
evaluates to corr. Short File Names only when used in the
|
||
|
Registry.Value column. When used in other places this
|
||
|
syntax is treated the same as the regular
|
||
|
[#FileKey].
|
||
|
|
||
|
|
||
|
98-09-02 cgouge Validation: Bug 6613, New ICE 38. ICE38 Checks
|
||
|
components that will be installed to the user profile and
|
||
|
verifies that they use a registry key under HKCU as
|
||
|
the KeyPath. It verifies that the key exists, is under
|
||
|
HKCU, and belongs to the referring component.
|
||
|
|
||
|
98-09-02 bench Fixed bug 6336: Applying a patch when the
|
||
|
RemoveOldProducts action occurred before the main actions for
|
||
|
the new product, a "source not found" error occurred.
|
||
|
The fix was to save the old source list before
|
||
|
uninstalling the old product so the source list could be
|
||
|
used for the new product.
|
||
|
|
||
|
98-09-02 bench Fixed bug 6493: when a DLL custom action failed, we
|
||
|
erroneously put up an error message stating an exe
|
||
|
custom action failed. We now only display this error
|
||
|
only for EXE custom actions.
|
||
|
|
||
|
98-09-02 bench Fixed bug 6507: when opening an existing suminfo
|
||
|
stream (either through automation or the
|
||
|
MsiGetSummaryInformation api) for write (passing property count > 0)
|
||
|
and calling persist before writing any properties,
|
||
|
the existing properties are deleted. The fix was to
|
||
|
write out the existing properties when persisting even
|
||
|
if no properties were added or deleted.
|
||
|
|
||
|
98-09-02 mattwe Fixed bug 6722 - AppId.ActivateAtStorage and
|
||
|
AppId.RunAsInteractiveUser were busted such that you
|
||
|
couldn't successfully create a false value.
|
||
|
Now, nulling the column or using 0 as the value
|
||
|
evaluate as false. Any other value is considered
|
||
|
true.
|
||
|
|
||
|
98-09-02 mattwe Fixed bug 6725 - x86 instmsi/copymsi will not install
|
||
|
on ALPHA machines, even when x86 is emulated.
|
||
|
You can still copy the bits by hand, if you *really*
|
||
|
want to, and run /regserver.
|
||
|
|
||
|
98-09-02 davidmck Fixed bug 6605 - Script performance work. We
|
||
|
compress Unicode strings to SBCS strings when possible in
|
||
|
the script. We also compare a record being written to
|
||
|
the script with the previous record being written and
|
||
|
any parameters that are identical are flagged and not
|
||
|
actually written to the script.
|
||
|
This means that all scripts created with this version
|
||
|
of Darwin are incompatible with previous versions.
|
||
|
Previous scripts are still compatible with this
|
||
|
version of darwin.
|
||
|
|
||
|
98-09-01 bench Bug 6446: when installing over in-use files, we now
|
||
|
attempt to rename the file (which works on NT) and
|
||
|
install the new file in the correct spot, rather than
|
||
|
installing the new file to a temp spot and scheduling
|
||
|
a rename. This gives files a better chance to be in
|
||
|
the correct spot immediately, even if the existing
|
||
|
files are in use. The in-use files that are moved out of
|
||
|
the way have names starting with "TBD" (to-be-deleted).
|
||
|
|
||
|
NOTE: this normally happens automatically when rollback
|
||
|
is enabled. This fix made for this bug ensures consistent
|
||
|
behaviour when rollback is not enabled.
|
||
|
|
||
|
98-09-01 mattwe Bug 6678: Removed the "Open" verb from Msi.Patch and
|
||
|
Msi.Package.
|
||
|
|
||
|
98-09-01 mattwe Bug 6594: Platform launch conditions for UNICODE/ANSI
|
||
|
on Win9X and NT are now all handled by msiinst.exe
|
||
|
|
||
|
98-09-01 bench Bug 5132: Darwin now allows non-admin users to replace
|
||
|
or delete files on reboot (on NT). MoveFileEx requires
|
||
|
admin rights to call, since the reg key being written
|
||
|
to is by default read-only for non-admins. To allow
|
||
|
non-admin users to perform this action, Darwin uses
|
||
|
its elevated privileges when calling MoveFileEx, but
|
||
|
first verifies the user actually has permission to do the
|
||
|
rename/delete.
|
||
|
|
||
|
NOTE: prior to this fix, we were always elevating before
|
||
|
calling MoveFileEx without making the proper access checks.
|
||
|
|
||
|
98-09-01 bench Bug 6181: when attempting to remove an acl'ed file, we now
|
||
|
display an error with the appropriate buttons. if we
|
||
|
failed to remove a file because it was in-use, we don't
|
||
|
display an error but rather schedule the file for delete
|
||
|
after reboot.
|
||
|
|
||
|
98-09-01 bench Bug 6596: if the user ignores the failure to overwrite a
|
||
|
file because the file is acl'ed, we used to copy a temp
|
||
|
file anyway and schedule a rename operation. a fix was
|
||
|
made to no longer do this.
|
||
|
|
||
|
98-09-01 mattwe Bug 6645: InstMsi/CopyMsi now correctly determine
|
||
|
the existence of a previous MSI install for non-admin
|
||
|
upgrades of Darwin. This will allow you to upgrade
|
||
|
*from* non-standard install locations (build tree,
|
||
|
et cetera.) We still only install *to* the
|
||
|
SystemFolder.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4431
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-28 cgouge Bug 6670: Validation, Registry and RemoveRegistry
|
||
|
Root columns now allow HKEY_CURRENT_USER (value -1)
|
||
|
|
||
|
98-08-28 mattwe Fixed bug 6552: On Win9x, we will create an autoexec
|
||
|
file if one doesn't already exist.
|
||
|
|
||
|
98-08-28 cgouge Fixed Bug 6646, all samples changed to use correct
|
||
|
SourceDir property.
|
||
|
|
||
|
98-08-28 chetanp fixed bugs - 6672, 6673 - incorrect fonts sql
|
||
|
queries.
|
||
|
|
||
|
98-08-27 davidmck Fixed bug 6562. We now stop any custom action thread
|
||
|
from closing a handle that it did not open. In
|
||
|
addition, any non-custom action thread can close any
|
||
|
handle it wishes.
|
||
|
There is still a hole where a custom actoin can start
|
||
|
another thread and close any handle it likes. If
|
||
|
custom actions want to be evil, there are lots of things
|
||
|
they can do besides this.
|
||
|
Note that we've changed this to be an error return of
|
||
|
ERROR_INVALID_THREAD_ID for custom actions, so
|
||
|
before they would just assert, now the handle will not be
|
||
|
closed.
|
||
|
|
||
|
98-08-27 chetanp bug 6573 - we now install shfolder.dll with darwin
|
||
|
on Win9x and assume it is always present. Hence we
|
||
|
install to the AppData folder all the cached information
|
||
|
(icons and transforms) and fail if we cannot do so.
|
||
|
Previously we had code to fall back to using the
|
||
|
<windows>\Installer folder.
|
||
|
|
||
|
98-08-27 chetanp bug 5514 - added support to munge through DD
|
||
|
shortcuts on Win98/Win9s + IE4 to prevent removal of
|
||
|
upgraded shortcuts (support already existed for WinNT5)
|
||
|
|
||
|
98-08-27 cgouge Fixed 6656, Validation, perf issue with ICE30.
|
||
|
|
||
|
98-08-27 mattwe Fixed bugs:
|
||
|
6573: added shfolder.dll to instmsi/copymsi for ANSI
|
||
|
x86 Win9X.
|
||
|
|
||
|
6497: Manually updated instmsi/copymsi file languages
|
||
|
for several support files from independent to 1033.
|
||
|
|
||
|
98-08-26 chetanp bug 6598 - fixed assert in ComposeDescriptor
|
||
|
|
||
|
98-08-26 malcolmh Fixed bugs:
|
||
|
|
||
|
5903 Without installing Office9, choosing
|
||
|
"Uninstall" from Install.msi context menu results in
|
||
|
installing IE5
|
||
|
|
||
|
We now prevent /x from working if you haven't at
|
||
|
least advertised the product.
|
||
|
|
||
|
6603 MsiInfo doesn't detect corruption in the
|
||
|
attached db, altho there is an invalid refcount.
|
||
|
|
||
|
6567 Need to stop advertising the contents of the
|
||
|
AppID table altogether
|
||
|
|
||
|
6601 Privileged Property is not being set by the
|
||
|
AlwaysInstallElevated policy.
|
||
|
|
||
|
6620 Transforms: There are difference between the dbs
|
||
|
after applying the transform
|
||
|
|
||
|
Fixed a problem with transforms that had > 64K strings.
|
||
|
|
||
|
98-08-26 bench Fixed bug 6617: added a new property,
|
||
|
DISABLEROLLBACK, which will disable rollback for the current
|
||
|
installation. this behaves identically to the
|
||
|
DisableRollback policy value.
|
||
|
|
||
|
98-08-26 mattwe Added shfolder.dll to darwin\tools\bin\x86, for
|
||
|
installation with instmsi/copymsi on Win9x platforms.
|
||
|
|
||
|
98-08-26 tracyf Fixed bug 6580 - for files with the ValidCheckSum
|
||
|
bit set in the File table, we now repair the existing
|
||
|
file if either the stored and calculated checksums
|
||
|
don't match (as before), OR if the file has no
|
||
|
detectable checksum (i.e. the file might be so corrupted we
|
||
|
can't read the file header).
|
||
|
|
||
|
98-08-25 cgouge Validation: New ICE30. (Bug 6014) Ice30 checks that
|
||
|
two different components don't install the same
|
||
|
filename into the same directory. It will check both LFN
|
||
|
and SFN cases, and will also catch equivalent
|
||
|
directories under keys in the Directory table. Generates an
|
||
|
error if any files collide, unless both components
|
||
|
are conditionalized, in which case it generates a
|
||
|
warning.
|
||
|
|
||
|
98-08-25 cgouge Validation: ICE35 update (checking compressed
|
||
|
components for RFS), only generates one error per component
|
||
|
per media table entry. This avoids an overwhelming
|
||
|
number of error messages.
|
||
|
|
||
|
98-08-25 mattwe Due to non-admin user installs being rather picky about
|
||
|
security permissions, I've generalized the LockPermissions
|
||
|
data in TestDb to primarily values that allow the current
|
||
|
user to access them.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4424
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-21 cgouge Validation: Bug 6474, New ICE 36 checks that all
|
||
|
icons are used in the Class, ProgID, or Shortcut table.
|
||
|
Warns if any extraneous icons are found.
|
||
|
|
||
|
98-08-21 cgouge Validation: Bug 6358, new ICE 35, checks that
|
||
|
components containing compressed files cannot be set to
|
||
|
RFS.
|
||
|
|
||
|
98-08-21 chetanp fix 5681 - On Win9x - If Profiles are on and start
|
||
|
menu is per-user - darwin goop to HKCU, transforms and
|
||
|
icons to AppData. If Profiles are on and startmenu
|
||
|
is shared - darwin goop to HKLM, transforms and icons
|
||
|
to Windows folder. Profiles are not on (start menu is
|
||
|
shared) - darwin goop to HKCU, transforms and icons
|
||
|
to AppData.
|
||
|
|
||
|
|
||
|
98-08-21 chetanp bug 6043 - we now attempt to use shfolder.dll to
|
||
|
create the App Data (and all other shell) folders, if
|
||
|
absent.
|
||
|
|
||
|
98-08-21 malcolmh Fixed (again) bug 6353: Rolling back an install can
|
||
|
remove ACLs from a file
|
||
|
|
||
|
98-08-21 malcolmh Fixed bug 5979: Darwin should fail
|
||
|
msiadvertisescript calls when transforms conflict.
|
||
|
|
||
|
We now have a script new flag:
|
||
|
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST. If this flag is specified, and
|
||
|
we're not removing, then we require that the transform
|
||
|
list in the script's ixoProductInfo field match exactly
|
||
|
the transform list registered for the product. If
|
||
|
the product isn't registered then the script may
|
||
|
contain any transform list. We'll return
|
||
|
ERROR_INSTALL_TRANSFORM_FAILURE if the flag is on and the lists don't
|
||
|
match.
|
||
|
|
||
|
98-08-20 davidmck Fixed Bugs 6512 and 6478. I changed how we handle
|
||
|
connecting to the service. Previously we would assert
|
||
|
if the proxy msi.dll that was registered did not match
|
||
|
the msi.dll we had loaded.
|
||
|
Now we refuse to connect to the service. Also, on NT,
|
||
|
if we need to access the installer key, we check
|
||
|
when trying to create the config manager and fail if we
|
||
|
need the key and cannot access it.
|
||
|
This will prevent us from hitting an error later on
|
||
|
when previously we would create a local config
|
||
|
manager, but it would be unable to run an install.
|
||
|
|
||
|
98-08-20 davidmck Added MsiGetFileVersion API (Bug 6234) for tools to
|
||
|
get darwin's idea of a file's version and language
|
||
|
information.
|
||
|
|
||
|
98-08-20 malcolmh Fixed bug 6553: Elevated selfreg doesn't work for
|
||
|
run from net components
|
||
|
|
||
|
98-08-20 mattwe Fixed bug #4768: The error message was completely
|
||
|
accurate. We couldn't create a security descriptor
|
||
|
for a user we couldn't find. I've changed TestDB's
|
||
|
authoring such that its LockPermissions should work
|
||
|
in any domain.
|
||
|
|
||
|
98-08-20 chetanp bug 4893 - We now write optimized darwin descriptors
|
||
|
in the event we have a product with only one feature
|
||
|
or if we have a feature with only one component.
|
||
|
|
||
|
98-08-20 bench Fixed bug 6557. When patching a network image, we
|
||
|
now set TARGETDIR to the network image path to ensure
|
||
|
the existing admin image will be patched rather than
|
||
|
requiring the user to supply the appropriate
|
||
|
TARGETDIR path or re-enter the path in the admin dialog.
|
||
|
|
||
|
98-08-20 malcolmh Fixed bugs:
|
||
|
|
||
|
6372 Need to add recursive select options to the
|
||
|
selection control
|
||
|
6374 Need to change the selection manager combo boxes
|
||
|
to buttons
|
||
|
6376 Need to add an icon state to the selman that
|
||
|
indicates subfeatures are of mixed state
|
||
|
|
||
|
There are 3 new UIText table entries:
|
||
|
|
||
|
MenuAllCD Entire feature will be installed to run
|
||
|
from CD
|
||
|
MenuAllLocal Entire feature will be installed on
|
||
|
local hard drive
|
||
|
MenuAllNetwork Entire feature will be installed to
|
||
|
run from network
|
||
|
|
||
|
The selection tree now supports "Make me and my
|
||
|
children local" and "Make me and my children source".
|
||
|
The selection tree now greys the feature state icon
|
||
|
unless all children of the feature are in the shown
|
||
|
state.
|
||
|
|
||
|
|
||
|
|
||
|
98-08-20 chetanp bug 6549 - changed component installation behaviour
|
||
|
- We used to prevent an older component (lesser
|
||
|
keyfile) from overwriting an already DARWIN installed
|
||
|
newer component (implying, if the file exists without
|
||
|
having being installed by darwin - we go ahead and
|
||
|
install the component irrespective of the version - since
|
||
|
we did not trust the previous install to be complete/
|
||
|
exact). Now we dont care how the newer file got
|
||
|
there, we prevent the install, irrespective of whther we
|
||
|
(Darwin) installed or not.
|
||
|
|
||
|
|
||
|
98-08-20 chetanp fixed bug 6454 - We now allow for setting a property
|
||
|
to a registry/ Ini value as is via the RegLocator/
|
||
|
IniLocator table w/o the interpretation as a file or
|
||
|
folder and without verification that it exists. We
|
||
|
allow for this by using the value 2 in the
|
||
|
RegLocator.Type/ IniLocator.Type column. Of course, if someone
|
||
|
uses this to set a Directory property, and it is
|
||
|
invalid, we would fail.
|
||
|
|
||
|
98-08-20 malcolmh Fixed bug 6477: Still writing AppId key when
|
||
|
advertising on downlevel system
|
||
|
|
||
|
98-08-20 malcolmh Fixed bug 6504: Uninstall Patch and Security: /x
|
||
|
uninstalls appears to elevate where /i Remove=All
|
||
|
doesn't
|
||
|
|
||
|
This was caused by our incorrectly determining
|
||
|
whether the product is "managed". In the ARP case we know
|
||
|
that the product is not managed because we're handed
|
||
|
the product code up front. In the "/x" case we don't
|
||
|
know the product code up front so we think the app
|
||
|
is in first-run. Because the user is an admin and it's
|
||
|
first-run, we elevate. I've pushed back our "Is this
|
||
|
app managed" check into Engine::Iniitialize to solve
|
||
|
this problem. I added a new iei return from
|
||
|
Engine::Initiialize called ieiPackageRejected. This maps to
|
||
|
ERROR_ACCESS_DENIED, the same value that we used to
|
||
|
return when a package was rejected for security
|
||
|
reasons.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4420
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-19 johndelo Bug 6539 - Broken OLE32.DLL supplied with IE 4.01 SP1
|
||
|
Win 9X only, causes failure with compressed stream names.
|
||
|
New OLE32.DLL available, currently in \\jdelo3\public.
|
||
|
To avoid problems on Win9X, the compressed stream naming
|
||
|
has been disabled, by can be reenabled for testing by
|
||
|
setting the environment variable _MSI_TEST to a string
|
||
|
including the letter Z. The use of the APIs to manage
|
||
|
streams and storages in a database is still operational.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.4419
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-18 johndelo Bug 4130, 6462 - Changes to stream names in MSI files.
|
||
|
Changes to MSI persistent stream handling: There have
|
||
|
been a number of problems with stream name limitations
|
||
|
in the current implementation of OLE docfiles:
|
||
|
1. Stream names are limited to 31 characters. This is
|
||
|
unacceptable for stream names that must be uniquely
|
||
|
qualified with a GUID.
|
||
|
2. Stream names are case-insensitive on open. This
|
||
|
could cause unexpected problems in merging, as the
|
||
|
generated stream names internally in MSI are
|
||
|
case-sensitive.
|
||
|
3. Certain stream name lengths cause erroneous behavior
|
||
|
and crashes inside OLE32.DLL.
|
||
|
4. Storage names, private streams managed solely by the
|
||
|
database, and user-streams such as custom actions,
|
||
|
icons, bitmaps, and cabinets all share the same
|
||
|
namespace, with the potential for disastrous
|
||
|
consequences.
|
||
|
|
||
|
In addition, there has been no way for tools to add
|
||
|
streams and substorages to the database being
|
||
|
processed, as there is no access to the storage. They
|
||
|
have been forced to save and close the database, and
|
||
|
then use direct OLE calls. This requires in some cases
|
||
|
knowledge of specific information, such as storage
|
||
|
CLSIDs. Forcing such direct access makes it impossible
|
||
|
to upgrade our persistent file format in the future, a
|
||
|
very serious constraint.
|
||
|
|
||
|
---Solution---
|
||
|
1. Stream names are compressed internally, and can use
|
||
|
up 62 characters if the characters all belong to the
|
||
|
identifier set (letters, digits, period, underscore),
|
||
|
which it true for the stream names generated from
|
||
|
tables having stream columns. Non-identifier characters
|
||
|
are acceptable, but will not participate in the 2 to 1
|
||
|
compression. Stream names beginning with the control
|
||
|
character '\005', such as "\005SummaryInformation" are
|
||
|
never compressed, as they must be publicly accessible
|
||
|
from property browsers.
|
||
|
2. Stream names are case-sensitive on open, due to the
|
||
|
compression scheme.
|
||
|
3. External stream data, private database streams, and
|
||
|
storages have separate namespaces.
|
||
|
4. To support external addition of streams and
|
||
|
substorages, two new pseudo-tables have been created:
|
||
|
_Streams and _Storages. These are not persistent
|
||
|
tables, but are simply temporary tables created on
|
||
|
demand and filled using our stream and storage
|
||
|
enumerators when one of those tables is loaded. They
|
||
|
each have two columns, Name which is the string name of
|
||
|
the stream or substorage, and Data which is a stream
|
||
|
holding the data. Standard queries can thus list the
|
||
|
non-private streams and substorages, and new streams
|
||
|
and substorages can be added from files using the
|
||
|
existing API MsiRecordSetStream. Streams and
|
||
|
substorages can be deleted by setting the stream data
|
||
|
to NULL. Stream data can be extracted with the API
|
||
|
MsiRecordReadStream. Substorage data cannot be
|
||
|
extracted with this API currently, but since the names
|
||
|
are not compressed, OLE APIs can open the substorages.
|
||
|
5. Updated views of _Streams and _Storages tables will
|
||
|
be written when the view is closed or on
|
||
|
MsiDatabaseCommit. If the data could not be written
|
||
|
when the view is closed, it will be retried on Commit
|
||
|
(same as with other database tables), and an error will
|
||
|
be generated at that time if unsuccessful.
|
||
|
6. Databases generated with old stream names will be
|
||
|
processed as before, and will thus have the limitation
|
||
|
mentioned above. They are distinguished by a different
|
||
|
storage CLSID.
|
||
|
7. There will be a compatibility mode for some period
|
||
|
of time, which will use the old stream names and the
|
||
|
old storage CLSID, to allow the generation of databases
|
||
|
that can be used by older versions of MSI. This mode
|
||
|
is forced by adding the bit flag 16 to the open mode
|
||
|
for database or storages. Internally that is defined as
|
||
|
idoRawStreamNames or ismRawStreamNames.
|
||
|
8. Transforms, a variant of the database format, have
|
||
|
the same stream limitations, and will also use the
|
||
|
compressed stream naming if the input database uses
|
||
|
compressed streams.
|
||
|
|
||
|
Some options have been added to MsiOpenDatabase, but
|
||
|
are not currently in msiquery.h
|
||
|
MSIDBOPEN_RAWSTREAMNAMES = 16 // old-format names
|
||
|
MSIDBOPEN_PATCHFILE = 32 // patch file as DB
|
||
|
The latter allows patch files to be generated using
|
||
|
the MSI API functions, without having to know the
|
||
|
internal storage details.
|
||
|
|
||
|
MsiDb.EXE temporarily has an option, -o, to create an
|
||
|
old-format database, rather then -c for a new-format
|
||
|
database.
|
||
|
|
||
|
Old-format databases, transforms, and patch files can
|
||
|
be read by the new MSI. However, this backward
|
||
|
compatibility will be removed before ship.
|
||
|
|
||
|
A sample VBScript which generates and views files with
|
||
|
streams and substorages is at
|
||
|
DARWIN\src\tools\script\patchtst.vbs
|
||
|
|
||
|
Yet to do:
|
||
|
MsiTran.EXE needs to be updated to view transform
|
||
|
file internal data. Documentation for newsystem tables,
|
||
|
_Streams and _Storages, and revised documentation for
|
||
|
patch file generation, using the MSI APIs.
|
||
|
|
||
|
98-08-18 johndelo Bug 5036 - move component mapping to machine registry.
|
||
|
Each feature for a product registers the list of
|
||
|
component IDs along with the name of the parent feature.
|
||
|
In the past this information has be in the user
|
||
|
registry, and the size taken can be considerable for a
|
||
|
product with many features and components. For the
|
||
|
following reasons, this feature-component mapping has
|
||
|
been moved to the machine registry along with the
|
||
|
component registration:
|
||
|
1. Much space taken in user profile with component IDs,
|
||
|
even for applications that have never been installed.
|
||
|
2. Advertise scripts bloated with needless component IDs.
|
||
|
3. Logon time adversely affected by excessive
|
||
|
registration.
|
||
|
4. Performance improvement by avoiding opening of user
|
||
|
registry keys during activation of installed features.
|
||
|
5. Need to bring all the component logic together in
|
||
|
preparation for eventual move of registration out
|
||
|
of HKLM, for improved performance and resource usage.
|
||
|
|
||
|
Products that are advertised should present no problem,
|
||
|
as we temporarily handle the old registration (this will
|
||
|
eventually be pulled for increased performance). And old
|
||
|
packages and old advertise scripts will still work fine.
|
||
|
But products that are already installed and use MSI to
|
||
|
find or fault in components will need to be reinstalled.
|
||
|
Alternatively, a tool, MsiMig.exe, is in our release that
|
||
|
will migrate the feature-component mapping for all
|
||
|
installed products. It would be nice if the new MSI
|
||
|
would handle both old and new registrations, but this
|
||
|
proved to be much to complicated to implement and test.
|
||
|
|
||
|
In order to allow newly generated advertised scripts
|
||
|
to work with older versions of MSI, the stripping of
|
||
|
the feature-component mapping from the script files is
|
||
|
temporarily disabled to give time for users to upgrade
|
||
|
(the stripping can be forced by setting the environment
|
||
|
variable: _MSI_TEST=J
|
||
|
|
||
|
98-08-18 malcolmh Fixed bug 6536: Uninstall fails to delete a file
|
||
|
that the user can delete with explorer
|
||
|
|
||
|
98-08-18 tracyf Fixed up the BasicUI dialog to better match Windows
|
||
|
guidelines (bug 6498)
|
||
|
|
||
|
98-08-18 mattwe Fixed bug 6475 - Objects whose security is set
|
||
|
via the LockPermissions table now pass their
|
||
|
security onto their children via inheritance.
|
||
|
|
||
|
98-08-18 chetanp fixed bug 5642 - We now have file versioning logic
|
||
|
for TTC fonts. As per attached thread, we take the
|
||
|
first font in the TTC file, and use its version to stand
|
||
|
for the version of the TTC collection in general and
|
||
|
for TTC vs TTC file comparisions.
|
||
|
|
||
|
|
||
|
98-08-18 tracyf Fixed bug 6033. The fix reduces Darwin's stack
|
||
|
requirements considerably (previously, the large buffer
|
||
|
Darwin uses for copying files was being reserved on
|
||
|
the stack, potentially causing problems for host
|
||
|
applications with a small stack size - it is now
|
||
|
allocated on the heap).
|
||
|
|
||
|
98-08-17 malcolmh Fixed bug 6491: MsiEnumProducts failed to skip the
|
||
|
bad ProductCode.
|
||
|
|
||
|
98-08-17 chetanp fixed bug 4265 - removed support for database
|
||
|
versions < 28
|
||
|
|
||
|
98-08-17 mattwe Fixed bug 6255 - changed instmsi/copymsi to detect
|
||
|
Win98 as Version9X < 410, instead of < 411.
|
||
|
Some machines have 411, some have 410.
|
||
|
|
||
|
98-08-17 mattwe Fixed bug 6513 - UpdateEnvironmentStrings on Win9x
|
||
|
wasn't getting passed the location to the autoexec
|
||
|
correctly.
|
||
|
|
||
|
98-08-17 davidmck Fixed bug 4196 - Perf improvements for faulting in
|
||
|
components. See the bug for details on all that
|
||
|
changed in order to regression test appropriately.
|
||
|
|
||
|
98-08-14 t-caroln Fixed bug 5679, VALIDATION. ICE28. Validates for
|
||
|
actions that can't be separated by ForceReboot using
|
||
|
the _SetExclusion and _PlaceHolder tables in the
|
||
|
darice.cub file. These tables are in
|
||
|
%DARWIN%\src\tools\iceman\ices. This ICE can be made to handle any other
|
||
|
actions similar to ForceReboot that can't break up a
|
||
|
set by modifying those tables.
|
||
|
|
||
|
98-08-14 t-caroln Fixed bug 6485, CMsiDatabase::ImportTable not
|
||
|
catching all errors, Changed to handle a failure during
|
||
|
SaveToStorage of the table or the _SummaryInformation
|
||
|
stream. Returns a debug error only (as this failure
|
||
|
shouldn't occur during ship).
|
||
|
|
||
|
98-08-14 t-caroln Fixed bug 5423, VALIDATION. This concerns ICE26
|
||
|
which validates required/prohibited actions in the
|
||
|
Sequence tables. Validation is based off of the _Action
|
||
|
table located in %DARWIN%\src\tools\iceman\ices and I
|
||
|
have included an XL spreadsheet in the same directory
|
||
|
with a table of the values that I used. I based it
|
||
|
off of template.msi and testdb.msi and both pass this
|
||
|
ICE. However, if changes are needed, only change
|
||
|
the _Action table by turning off/on the specific bit.
|
||
|
AdminUISequence is 0x00000001, AdminExecuteSequence
|
||
|
is 0x00000002, AdvtUISequence = 0x00000004,
|
||
|
AdvtExecuteSequence = 0x00000008, InstallUISequence =
|
||
|
0x00000010, InstallExecuteSequence = 0x00000020
|
||
|
|
||
|
98-08-14 davidmck Perf change to CMsiFileStream : We now buffer this
|
||
|
similarly to the buffering of the CMsiStream object.
|
||
|
This gives us a large improvement on writing and
|
||
|
reading the script file.
|
||
|
|
||
|
98-08-13 chetanp fixed bug 4347. RMCCPSearch is a noop if the
|
||
|
CCPSearch table is missing or empty.
|
||
|
|
||
|
98-08-13 mattwe #6430: removed the progid table from instmsi.
|
||
|
All of this is handled via custom actions.
|
||
|
|
||
|
#6125, #6433: Ben's fantastic work has enabled
|
||
|
us to remove the move/rename hacks from instmsi.
|
||
|
The instmsi/copymsi database now pass validation
|
||
|
again.
|
||
|
|
||
|
98-08-13 cgouge Validation: New ICE34. Validates that radiobutton
|
||
|
groups all have defaults so that blind users can use
|
||
|
them effectively. Handles both direct and indirect
|
||
|
contrrols. TestDB FAILED this ICE, so I added 3
|
||
|
properties to the property table to set the defaults in
|
||
|
several groups.
|
||
|
|
||
|
98-08-13 malcolmh Fixed bugs:
|
||
|
|
||
|
6353: Rolling back an install can remove ACLs from
|
||
|
a file
|
||
|
6176: AD: Darwin does not always reset Busy flag on
|
||
|
failure
|
||
|
6323: AD: Call to CoInitializeSecurity in Darwin
|
||
|
service too loose and can be a potential hole
|
||
|
6456: Patching: Security ACLs altered on patched
|
||
|
file.
|
||
|
6457: Patching: Insufficient Privileges to remove
|
||
|
cached .msp on Uninstall
|
||
|
6340: Providing a URL in Network Resource Dialog
|
||
|
fails to find source files.
|
||
|
6442: Need to add the TTCSupport property for those
|
||
|
systems that support TTC's
|
||
|
6445: Patching: Applying bad patch to an advertised
|
||
|
app riggers assert in msiutil.cpp
|
||
|
6447: Patching\Transforms: Memory leak after
|
||
|
transform fails during patch
|
||
|
6422: Get internal error 2260 when expecting network
|
||
|
error
|
||
|
|
||
|
98-08-13 bench Fixed bug 6428: template.msi contained two
|
||
|
ValidateProductID control events, which caused an error when
|
||
|
attempting to use this package without adding the
|
||
|
PIDKEY and ProductID properties. Since these properties
|
||
|
are optional, the control events were removed to
|
||
|
prevent this error. The control events were in turn
|
||
|
added to testdb.msi to keep it working.
|
||
|
|
||
|
98-08-13 t-caroln Fixed bug 6432, authoring error in msival2. Avoid
|
||
|
problems now by using the merge database process in
|
||
|
the makefile. Now merge in template.msi.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4413
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-12 andrewh bug 6460 - return code from instmsi/copymsi was
|
||
|
always failure.
|
||
|
|
||
|
98-08-12 andrewh bug 6455 - InstMsi requires a reboot on NT4/sp3, the
|
||
|
file table entry for ImageHlp.dll was incorrect,
|
||
|
causing us to try to install it when an equal version
|
||
|
exists.
|
||
|
bug 6459 - Instmsi.exe /q reboots without asking,
|
||
|
the REBOOT=Reallysupress property is set on the
|
||
|
command line for quiet instmsi's.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4412
|
||
|
-----------------------------
|
||
|
|
||
|
98-08-11 chetanp fixed 4347. We skip the AppSearch, CCPSearch and
|
||
|
the RMCCPSearch actions in InstallExecuteSequence
|
||
|
table if we have run the InstallUIsequence table.
|
||
|
Also we have put the restriction that AppSearch
|
||
|
should use public properties only (to allow us to
|
||
|
skip AppSearch if we have run it on the UI side).
|
||
|
Also we fatal error out of RMCCPSearch, if
|
||
|
previously CCPSearch had not succeeded and
|
||
|
RMCCPSearch does not succeed. Hence we no longer need
|
||
|
the CCPFail UI dialog.
|
||
|
|
||
|
98-08-12 mattwe Bug #6421: file versioning for instmsi was busted
|
||
|
for the main Windows installer files. Fixed with
|
||
|
pointing msifiler to the build dir.
|
||
|
|
||
|
98-08-12 t-caroln Fixed bug 6010, VALIDATION. ICE29, which validates
|
||
|
stream names (ensures that if truncation must occur
|
||
|
to fit within OLE Storage's 31 char limit that the
|
||
|
stream names will still be unique).
|
||
|
|
||
|
98-08-11 chetanp fixed 6034. if we need to increase the registry
|
||
|
quota for an install we now persist the increase across
|
||
|
reboots (before it was effective only for that session
|
||
|
- ie until reboot, hece we ran into problems after a
|
||
|
reboot, since the registry quota was now already
|
||
|
overflown).
|
||
|
|
||
|
98-08-10 mattwe Bug #6416: we were using a string column as an integer,
|
||
|
and finally got caught without a string by that id
|
||
|
to back it up. The DirNonConfigurable in the directory
|
||
|
table is now short, instead of string.
|
||
|
|
||
|
98-08-10 chetanp fixed bugs 6379, 6402 - incorrect assumption that
|
||
|
product is (admin) assigned when called by the local
|
||
|
system (example during InsertObject of a feature of a
|
||
|
non assigned product).
|
||
|
|
||
|
98-08-10 t-caroln Fixed bug 6178, Strings not displaying correctly on
|
||
|
Win9X JPN. We now on Win9X call CreateFont to obtain
|
||
|
a Font Handle and then sending WM_SETFONT messages
|
||
|
to the controls on the dialog.
|
||
|
|
||
|
98-08-10 mattwe Bug #6409: Added msi.dll, msihnd.dll, and msiexec.exe
|
||
|
to the BindImage table for instmsi/copymsi
|
||
|
|
||
|
98-08-10 bench Fixed bugs 5234 and 6396. The "vital" bit in the
|
||
|
File.Attributes column and the "non-vital" bit in the
|
||
|
Patch.Attributes column are honored by patch
|
||
|
application. When the patch "non-vital" bit is set all errors
|
||
|
for that patch are ignored. Otherwise, the file
|
||
|
"vital" bit turns off the "Ignore" button on errors
|
||
|
patching that file.
|
||
|
|
||
|
98-08-10 mattwe Bug #4811: We weren't retrying missing uncompressed
|
||
|
files from a URL server. Involves a change to CopyFile.
|
||
|
|
||
|
98-08-10 t-caroln Fixed bug 6065. Testdb.msi not pass validation.
|
||
|
Testdb had failed ICE18 validation.
|
||
|
|
||
|
98-08-10 t-caroln Fixed bug 6401, defined ErrorDialog property in
|
||
|
Property table for template.msi
|
||
|
|
||
|
98-08-10 t-caroln Fixed bug 6400 dealing with a schema problem in
|
||
|
template.msi. Also fixed all schema differences reported
|
||
|
by the skemadif tool for all of the databases.
|
||
|
|
||
|
98-08-08 t-caroln Added a -f option to msival2 so that you can
|
||
|
suppress info messages. msival2 {database} -Z -f will only
|
||
|
display errors and warnings.
|
||
|
|
||
|
98-08-08 t-caroln Fixed bug 6220 -- VALIDATION. Now ICE27. ICE27
|
||
|
makes the cube file have all of the functionality of
|
||
|
msival.exe. ICE27 validates the organization and the
|
||
|
order of the Sequence tables. Because it handles the
|
||
|
organization, I removed that code from msival.exe.
|
||
|
MsiVal.exe still does data validation and sequence
|
||
|
order validation. The _InstallValidate table is now no
|
||
|
longer needed. Your database does not have to have
|
||
|
the _Sequence table for ICE27 to work (as it is
|
||
|
included in the cube file). A new table was added, the
|
||
|
_Action table. If you add a new standard action, you
|
||
|
need to update this table with the correct information.
|
||
|
The table is located in
|
||
|
%DARWIN%\src\tools\iceman\ices.
|
||
|
|
||
|
98-08-06 malcolmh Fixed bug 6002: Unexpected error 2335 when running
|
||
|
nested install
|
||
|
|
||
|
98-08-06 malcolmh Fixed bug 6299: 'Product Code not registered' is too
|
||
|
geeky
|
||
|
|
||
|
98-08-06 chetanp fixed bug 5629: For the Published Component API
|
||
|
functions, we now enumerate through all the locations
|
||
|
(hkcu\s\c\i, hkcu\s\m\i, hklm\s\c\i) in the order of
|
||
|
precedence for qualifiers for the same component (id).
|
||
|
We take care to skip repetitions during enumeration.
|
||
|
|
||
|
98-08-06 mattwe Bug 6110: Fixed DatabaseCopy operation for URLs
|
||
|
to copy from the currently running database instead
|
||
|
of downloading from the internet again.
|
||
|
|
||
|
This also involved an optimization during opening
|
||
|
the database to run from the copy in the internet
|
||
|
cache in the user's profile, rather than copying
|
||
|
from there to the temp file, and then running there.
|
||
|
|
||
|
98-08-05 malcolmh Fixed bugs 6334, 6335, 6357: Issues with UNICODE
|
||
|
APIs on Win9X
|
||
|
|
||
|
98-08-05 malcolmh Fixed bug 6332: invoking maintenance mode from
|
||
|
package results in caching of new package
|
||
|
|
||
|
98-08-05 bench Fixed bug 5952: if a suspended install exists that
|
||
|
was running a different top-level action than the
|
||
|
current install, we resumed the in-progress install with
|
||
|
no warning to the user. The user is now asked to
|
||
|
rollback the suspended install before continuing.
|
||
|
|
||
|
98-08-05 malcolmh Fixed bug 6361: Selecting alternate path from
|
||
|
SourceList dialog uses prior source in list.
|
||
|
|
||
|
98-08-05 malcolmh Fixed bug 6180: Install should failed when logon
|
||
|
user has not privilege to replace a file.
|
||
|
|
||
|
98-08-05 malcolmh Fixed bug 6356: Non-admin w/ DisableRollback
|
||
|
set can't uninstall
|
||
|
|
||
|
98-08-05 tracyf Fixed bug 6271 - All apps with a file in use are now
|
||
|
listed in the FilesInUseDialog, not just the first.
|
||
|
|
||
|
98-08-05 mattwe Bug #6255: We no longer install ImageHlp.Dll on
|
||
|
Win98 machines.
|
||
|
|
||
|
Bug #6039: We now hide the extraction animation
|
||
|
from IExpress for copymsi/instmsi. This results
|
||
|
in a several second delay in the regular mode,
|
||
|
but a completely quiet run for Office.
|
||
|
|
||
|
98-08-05 tracyf Fixed bug 6194, such that features marked with the
|
||
|
DisallowAbsent attribute will be guaranteed to be
|
||
|
installed if that feature's parent is installed (see the
|
||
|
bug report for specific instances where this was not
|
||
|
always the case).
|
||
|
|
||
|
98-08-04 malcolmh Fixed bug 6331: MsiGetUserInfo string length
|
||
|
arguments not consistent
|
||
|
|
||
|
98-08-04 mattwe Bug #6256: We were registering the non-verb shell info
|
||
|
from the temp directory for copymsi/instmsi. It's now
|
||
|
a custom action on the target bits at the end of the
|
||
|
install
|
||
|
|
||
|
Bug #6262: Cleared up the 9X registration story for
|
||
|
copymsi/instmsi.
|
||
|
We now DllRegisterServer on msi.dll on 9X. /regserver
|
||
|
is wrong, as well as not registering anything at all.
|
||
|
|
||
|
Bug #6260: We now install msierror.msg on all
|
||
|
platforms.
|
||
|
Design note: this is *always* installed, so you may
|
||
|
end up with a newer version with older Darwin. These
|
||
|
should be backwards compatible, however.
|
||
|
|
||
|
98-08-04 bench Fixed bug 5987: applying two patches to an install
|
||
|
left the install broken and unusable.
|
||
|
|
||
|
98-08-04 malcolmh Fixed bug 6301: PATCHING: Patch sourcelist doesn't
|
||
|
contain the PackageName
|
||
|
|
||
|
98-08-04 malcolmh Fixed bug 6303: PATCHING: Resliency doesn't work.
|
||
|
Cached patches are not restored from source
|
||
|
|
||
|
98-08-04 malcolmh Fixed bug 6304: PATCHING: The source that a patch is
|
||
|
invoked from is not added to the patch's sourcelist
|
||
|
|
||
|
98-08-04 bench Fixed bug 6305: added another potential value for
|
||
|
the REBOOT property: REALLYSUPPRESS. (only the first
|
||
|
character is checked so REBOOT=R works as well). When
|
||
|
this value is used, even reboots triggered by the
|
||
|
ForceReboot action are suppressed. These reboots are
|
||
|
not suppressed by REBOOT=S(UPPRESS).
|
||
|
|
||
|
98-08-03 malcolmh Fixed bug 4975: Upgrade: SourceList PackageName
|
||
|
unchanged after reinstall of upgrade msi over patch
|
||
|
|
||
|
98-08-03 malcolmh Fixed bug 6316: PATCHING: When a product "takes
|
||
|
over" for a patch+product the new package code is not
|
||
|
registered
|
||
|
|
||
|
98-08-03 t-caroln Fixed bug 6254. Engine Condition Parser now handles
|
||
|
the possibility of DBCS characters in the string
|
||
|
literal correctly. Also fixed the related area in the
|
||
|
Validation condition parser. The CharPrevCch function
|
||
|
in istring.cpp now respects the DBCS simulation.
|
||
|
|
||
|
98-08-03 t-caroln Fixed bug 5773. ICE17. An update to ICE17 to
|
||
|
validate Picture buttons correctly. The update validates
|
||
|
the Bitmap and Icon controls as referencing entries
|
||
|
in the Binary table (unless the Image Handle attribute
|
||
|
is set). It also validates that any PushButton,
|
||
|
CheckBox, or RadioButtonGroup with the bitmap or icon
|
||
|
attribute set (not both) correctly references the
|
||
|
Binary table, unless the Image Handle attribute is set.
|
||
|
For RadioButtonGroups, it validates each RadioButton
|
||
|
belonging to the property specified by the
|
||
|
RadioButtonGroup.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4403
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-31 cgouge VALIDATION: Bug 6016, New ICE#31. Added ICE31 to
|
||
|
examine text controls for TextStyle tags and validate
|
||
|
those tags against the Text Style Table. Gives warnings
|
||
|
if the text style is missing. Also gives a warning
|
||
|
if the text style is bogus for some reason (more than
|
||
|
one, not at beginning of text, etc). Added file
|
||
|
\src\tools\iceman\ICEs\msiice5.cpp
|
||
|
|
||
|
98-07-31 t-caroln Fixed bug 3311 - ICE32. Validates that the keys and
|
||
|
foreign keys as listed in the _Validation table are
|
||
|
the same size and type.
|
||
|
|
||
|
98-07-31 andrewh 5397 - Fixed the Network Resource (aka Insert your
|
||
|
CD-ROM) dialog to parent correctly
|
||
|
|
||
|
98-07-31 malcolmh Fixed bug 6250: when transform resiliency is
|
||
|
activated we apply transforms too many times
|
||
|
|
||
|
98-07-31 chetanp bug 5267 - we now allow the Font.Title column to be
|
||
|
null for .TTF files. If the Title is not provided, we
|
||
|
get it out ourselves from the font file. This
|
||
|
eliminates authoring error for this column.
|
||
|
NOTE: The Font.Title column specs have changed from
|
||
|
NotNullable to Nullable.
|
||
|
|
||
|
98-07-31 malcolmh Fixed bug 6050: Too hard to machine-assign by
|
||
|
default.
|
||
|
|
||
|
We now support ALLUSERS=2 which causes us to do a
|
||
|
machine install if possible, otherwise do a user
|
||
|
install.
|
||
|
|
||
|
98-07-31 malcolmh Fixed bug 6190: Fix impersonation from service
|
||
|
context in path object.
|
||
|
|
||
|
98-07-30 bench Fixed bug 6261: a few files were left behind after
|
||
|
rollback of a patch application.
|
||
|
|
||
|
98-07-30 mattwe #6218: changed verb registration in copymsi/instmsi
|
||
|
for admin installs to /A from /N. Was working off an
|
||
|
old doc.
|
||
|
|
||
|
98-07-30 Tracyf Fixed bugs 6233 and 6275 (errors when browsing to a
|
||
|
volume in which the user has no write permissions at
|
||
|
the root of the volume, but can write to subfolders).
|
||
|
|
||
|
98-07-30 Tracyf Fixed bugs 5706, 6269, 6273 (all involving Selection
|
||
|
Tree problems in maintenance mode).
|
||
|
|
||
|
98-07-30 bench Fixed bug 5659: verbose logging is enabled. Verbose
|
||
|
logging is triggered by the 'v' log mode, and
|
||
|
contains much more useful information than the normal log.
|
||
|
Note that verbose logging doesn't log ALL debugmsgs
|
||
|
(stuff written to debug output).
|
||
|
|
||
|
98-07-30 t-caroln Fixed bug 6239 --> ICharNext in UNICODE now behaves
|
||
|
the same as WIN::CharNext. Also added INextChar
|
||
|
which does not do the check on the pointer. When using
|
||
|
INextChar you need to check to make sure you don't run
|
||
|
off of the array.
|
||
|
|
||
|
98-07-30 t-caroln Fixed bug 6247, Auto::ComponentPath returns EMPTY on
|
||
|
error from MsiGetComponentPath.
|
||
|
|
||
|
98-07-30 bench Fixed bug 5943: each patch package (msp file) can
|
||
|
now contain a list of old patches that are removed when
|
||
|
the new patch is applied. This list is stored in
|
||
|
the summary info stream of the msp file in the
|
||
|
REVNUMBER property. This properties format is now the patch
|
||
|
code followed by the list of old patches. No
|
||
|
delimiters seperate the different patch guids.
|
||
|
|
||
|
98-07-30 mattwe Note that the new CopyMsi (as of 4320) no longer installs
|
||
|
the help files. This is by design, and is also suggested
|
||
|
by the doc team.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4329
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-29 t-caroln Fixed bug 5661, extending Version category
|
||
|
validation to do better checks of the Language column (must
|
||
|
not be a Binary or Long Integer column). If String,
|
||
|
the Category in the validation table must be Language.
|
||
|
|
||
|
98-07-29 bench Added new incremental versioning scheme to build
|
||
|
process. Rebuilds will now bump the last version field
|
||
|
of all built files, and the drop folders will include
|
||
|
the incremental version. For example, a rebuild of
|
||
|
4329 will be versioned 0.28.4329.1 and will be
|
||
|
dropped to a 4329.1 folder.
|
||
|
|
||
|
98-07-29 cgouge Updated M3COM to handle module exclusion tables
|
||
|
appropriately. This required a change to the M3DOCK tool.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4329
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-28 t-caroln Fixed bug 6230, Validation. Validate_New now works
|
||
|
for foreign key validations of self-joins for a
|
||
|
record to be inserted (failed previously with a new record
|
||
|
specifying a root directory with the
|
||
|
Directory.Directory=Directory.Directory_Parent case).
|
||
|
|
||
|
98-07-28 bench Fixed bug 6075: assert and error when applying a
|
||
|
patch to an admin install.
|
||
|
|
||
|
98-07-28 t-caroln Fixed bug 6231. Msival2 no longer crashes if you
|
||
|
forget to specify the parameter following an option
|
||
|
(like -i or -l)
|
||
|
|
||
|
98-07-27 chetanp bug 6200: fixed performance issue with multiple
|
||
|
files in use detection inefficiency
|
||
|
|
||
|
98-07-27 t-caroln Overhauled the msidlgs.exe tool and re-wrote it. It
|
||
|
now calls all W versions of API on WINNT and all A
|
||
|
versions on Win9X. Added the /L option to print out
|
||
|
all languages in the dll (msidlgs {msi.dll} /L). Now
|
||
|
uses it's own LoadStringEx function. On Win9x the
|
||
|
system must already be in the proper codepage.
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6002: Unexpected error 2335 when running
|
||
|
nested install
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6190: We are not set fImpersonate
|
||
|
correctly in CreateFileStream when call MsiAdvertiseScript
|
||
|
from service using an UNC pathed script file.
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6184: InProgress mutex is being created
|
||
|
without a security descriptor.
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 5977: Feature caching prevents repair of
|
||
|
parent features.
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6198: MsiGetUserInfoW on Win9X doesn't
|
||
|
handle DBCS correctly
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6217: Specifying TRANSFORMS=foo.mst on the
|
||
|
command-line causes crash
|
||
|
|
||
|
98-07-27 malcolmh Fixed bug 6044: Won't update components if the
|
||
|
keyfile is of equal version or if certain reinstallmodes
|
||
|
are set
|
||
|
|
||
|
98-07-27 chetanp bug 5514: fix shortcut removal issue during
|
||
|
upgrades. We now delete DD shortcuts only if they point to
|
||
|
our product.
|
||
|
|
||
|
98-07-24 malcolmh Fixed bug 6175: AD: Darwin uses different location
|
||
|
for package even if asked to use a specific package
|
||
|
|
||
|
98-07-24 malcolmh Fixed bug 5205: Logging: note in event log causes
|
||
|
of ERROR_BAD_CONFIGURATION
|
||
|
|
||
|
98-07-24 malcolmh Fixed bug 6001: AF: srcmgmt.cpp when removing LAN
|
||
|
connection to source files
|
||
|
|
||
|
98-07-24 mattwe Bug #5568: Removed verb registration from
|
||
|
msiexec /regserver. You now must run instmsi/
|
||
|
copymsi at least once get the verb registration.
|
||
|
|
||
|
Bug #6118: We no longer use the verb/extension
|
||
|
tables for the localized verbs in instmsi/copymsi
|
||
|
|
||
|
Bug #1765: We've seperated the verbs for msiexec
|
||
|
out into a res file, and are sending it to localizers.
|
||
|
|
||
|
98-07-23 davidmck Fixed Bug 5964,. We were doing background costing
|
||
|
with an error message up. Probably not a good idea.
|
||
|
|
||
|
98-07-23 t-caroln Fixed bug 6099: Validation. Validation can now
|
||
|
handle DBCS characters correctly. Also inlined the
|
||
|
ICharNext and exposed it in istring.h. Updated all calls
|
||
|
to use ICharNext which has special meaning in Debug
|
||
|
(DBCS simulation). Ship calls WIN::CharNext directly
|
||
|
and UNICODE directly performs a ++pch. Use ICharNext
|
||
|
from now on.
|
||
|
|
||
|
98-07-23 t-caroln Fixed bug 6197 -- Validation of Sequence actions in
|
||
|
Msival.exe. While msival would still work, if an
|
||
|
action had more than one error related to it, it would
|
||
|
only print it out one time. Thus, the user would fix
|
||
|
it, run msival again, and it fail again (for the 2nd
|
||
|
error that it didn't print out). Now all errors are
|
||
|
printed out in one swoop.
|
||
|
|
||
|
98-07-23 chetanp bug 6170 - The RemoveRegistryValues action should
|
||
|
precede the UnregisterMIMEInfo and the
|
||
|
UnregisterProgIdInfo actions to ensure that the ProgId and MIME
|
||
|
information is removed upon uninstall in the case special
|
||
|
subkeys/ values are added to the <.Extension> or
|
||
|
<CLSID\GUID> keys in the registry via the Registry table.
|
||
|
|
||
|
98-07-23 chetanp bug 6179 - We now remove the extension only if the
|
||
|
corr. progid has no more shell commands left. This
|
||
|
allows for multiple applications to share extensions.
|
||
|
|
||
|
98-07-23 chetanp bug 6191 - check MsiAdvertiseScript dwFlags for
|
||
|
validity. We now make sure that the bits passed in are
|
||
|
from the enum tagSCRIPTFLAGS.
|
||
|
|
||
|
98-07-23 cgouge Added ICE25, bug 6018. Validates merge module
|
||
|
dependencies and exclusions. ICE25 shares most of its code
|
||
|
with M3COM, so src\tools\common is now on the
|
||
|
dependency list for msiice.dll.
|
||
|
|
||
|
|
||
|
98-07-23 davidmck Perf improvements to version checking. We now get
|
||
|
both the file version and language information at the
|
||
|
same time.
|
||
|
|
||
|
|
||
|
98-07-23 t-caroln Fixed bug 6189 -- Validation. Formatted and
|
||
|
KeyFormatted are transparent to Darwin, so made it so. Now
|
||
|
Template, Formatted, and KeyFormatted all work as
|
||
|
KeyFormatted (except Template has the additional [1] in
|
||
|
integer property specification). KeyFormatted has
|
||
|
not been removed though to maintain backwards
|
||
|
compatibility. Formatted originally was a subset of
|
||
|
KeyFormatted and now equates to KeyFormatted. All instances of
|
||
|
KeyFormatted in _Validation table have been changed
|
||
|
to use Formatted.
|
||
|
|
||
|
98-07-23 t-caroln Fixed bug 5799, crash w/ runscrpt.exe with the
|
||
|
following : runscrpt.exe showmsi.vbs
|
||
|
ListScript(testtran.aas) where testtran.aas is an invalid filename. Now
|
||
|
the CScriptView and CScriptDatabase classes handle the
|
||
|
error properly.
|
||
|
|
||
|
98-07-23 tracyf Fixed bug 5382. We were having problems when
|
||
|
browsing from a volume that supports long filenames, to one
|
||
|
that supports only short names.
|
||
|
|
||
|
98-07-23 tracyf Fixed bug 5393. We now do better error checking
|
||
|
when attempting to write records to the execution and
|
||
|
rollback scripts.
|
||
|
|
||
|
98-07-22 andrewh 6187 - Shortcuts were removed when changing from
|
||
|
install local to advertised on NT5 (or IE4.01sp1 desktop
|
||
|
update).
|
||
|
|
||
|
98-07-22 t-caroln Fixed bug 6183: MsiVal not work correctly for
|
||
|
sequence validation. A query would always fail so I fixed
|
||
|
it to validate correctly. This pretty much turned
|
||
|
off the action must come before dependent action
|
||
|
validation. Also fixed up some of the entries in the
|
||
|
_Sequence table.
|
||
|
|
||
|
98-07-22 t-caroln Fixed bug 6021 --> Standard Dialog validation.
|
||
|
ICE20. Due to a fix to 5220, the ICE had to be updated
|
||
|
to handle ErrorIcon control correctly. It was also
|
||
|
made to look for the required names of the Error
|
||
|
buttons on the ErrorDialog.
|
||
|
|
||
|
98-07-22 malcolmh Fixed bug 5781: AD: Darwin returns 1610
|
||
|
(Configuration error) when it fails to establish connection to
|
||
|
the source
|
||
|
|
||
|
98-07-22 malcolmh Fixed bug 6123: 4127c: some dialogs still not
|
||
|
localized.
|
||
|
|
||
|
98-07-22 malcolmh Fixed bug 3799: Make sure all environment variables
|
||
|
are expanded in the context of the user
|
||
|
|
||
|
98-07-22 davidmck Fixed bug 6029 - We were hogging CPU cycles by
|
||
|
calling GetTickCount repeatedly if the selection manager
|
||
|
wasn't initialized. Now we kill the timer for
|
||
|
background costing for the window we are in if the selection
|
||
|
manager is not ready.
|
||
|
|
||
|
98-07-22 mattwe Bug #6146: We didn't have ALLUSERS set for
|
||
|
instmsi/copymsi, and the Registry stuff went to the
|
||
|
wrong place.
|
||
|
|
||
|
98-07-21 chetanp bug 6062 - we no longer advertise Type Libraries in
|
||
|
Darwin. The RegisterTypeLibraries action has been
|
||
|
removed from the AdvtExecuteSequence table. Darwin will
|
||
|
now ignore this action if encountered in the
|
||
|
AdvtExecuteSequence table (for older databases).
|
||
|
|
||
|
98-07-21 chetanp bug 6109 - we now support SFN|LFN syntax in the
|
||
|
IniLocator table.
|
||
|
|
||
|
98-07-21 t-caroln Fixed bug 6137. Added
|
||
|
msiTransformValidationUpgradeCode enum value to type library.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4320
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-20 mattwe Bug #6126: removed /regserver calls from msiinst
|
||
|
on Win9X
|
||
|
|
||
|
98-07-20 mattwe Bug #4505: BackupFile without removing original
|
||
|
file now copies the backup file over the original
|
||
|
during rollback. This allows you to modify the
|
||
|
original, and have it restored during rollback.
|
||
|
This is currently only used by UpdateEnvironment
|
||
|
on Win9X.
|
||
|
|
||
|
98-07-18 johndelo Bug 6131: New release directory: ToolsW
|
||
|
to hold Unicode builds of the tools on both platforms.
|
||
|
TestDb contains ANSI customactions on x86, Unicode on Alpha
|
||
|
|
||
|
98-07-17 malcolmh Fixed bug 6112: Assert in Execute.cpp during Patch
|
||
|
(or Uninstall) when using Rollbacktest=1
|
||
|
|
||
|
98-07-17 malcolmh Fixed bug 6119: MsiGetFeatureInfo(hProduct,
|
||
|
APIProduct.FeatureID(), &iAttribute, 0, 0, 0, 0) should
|
||
|
return 0. It returns:87
|
||
|
|
||
|
98-07-16 mattwe Bug #6115 - for some reason an impersonated reboot
|
||
|
was failing to get a process token. We had a call
|
||
|
to EnableReboot, and it works now.
|
||
|
|
||
|
Bug #5828, #5878 - Added a timeout on the
|
||
|
WaitForService in case something goes really wacky.
|
||
|
|
||
|
98-07-16 chetanp bug 6084 - removed UpdateResource functionality
|
||
|
|
||
|
98-07-16 chetanp bug 6082 - refined the symantics for the reinstall
|
||
|
flags. see bug for more info.
|
||
|
|
||
|
98-07-16 t-caroln Fixed bug 6012 -- ICE24. Validates the ProductCode,
|
||
|
ProductLanguage, and ProductVersion properties in
|
||
|
the Property table.
|
||
|
|
||
|
98-07-16 mattwe Bug #5900: Stubbed security descriptor retrieval to
|
||
|
immediately return on Win 9X.
|
||
|
|
||
|
Bug #5635: Changed UpdateEnvironment on Win9X to
|
||
|
retrieve boot volume location from the registry.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4316
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-15 mattwe Added new instmsi/copymsi. This is still a self
|
||
|
extracting EXE, but has a radically different dance
|
||
|
in the middle.
|
||
|
|
||
|
NT requires either an admin user, *or* a pre-existing
|
||
|
Darwin install on the system.
|
||
|
|
||
|
Bug #4725: New registry key added for Hydra.
|
||
|
Bug #4891: Now uses /qb+ to let Darwin determine
|
||
|
success/failure of installation.
|
||
|
Bug #5243: Added EditFlags to avoid packages being
|
||
|
listed in the recent documents.
|
||
|
Bug #5279: Registers an AppPath on Win95/98 to allow
|
||
|
running msiexec from the command line without a
|
||
|
path setting.
|
||
|
Bug #5402: LaunchConditions prevent install on NT 3.51
|
||
|
Bug #5906: LaunchConditions prevent install on NT 5.0
|
||
|
Note: You can set the FORCE_MSI_UPGRADE_NT5
|
||
|
environment variable to any value to override this
|
||
|
in InstMsi.
|
||
|
CopyMsi overrides automatically.
|
||
|
|
||
|
MsiFiler has been added to the makefile, to get in
|
||
|
file versions and sizes dynamically.
|
||
|
|
||
|
%darwin%/data/msimsi has been added to the project with
|
||
|
the generic instmsi/copymsi database.
|
||
|
|
||
|
TESTING: copymsi and instmsi should look externally
|
||
|
the same.
|
||
|
|
||
|
98-07-14 t-caroln Fixed bug 6064 in evalcom. Left out a check for
|
||
|
ERROR_SUCCESS. Now msival2 {database} {evaludation
|
||
|
file} -i ICEX:ICEY:ICEZ works correctly.
|
||
|
|
||
|
98-07-14 t-caroln Validation. Fixed bugs 6071 and 6072. Validation
|
||
|
was allowing || pipes (note, the error was in the
|
||
|
validation parser used to pass the SFN or LFN to the
|
||
|
global filename validator). Now it errors with more than
|
||
|
one pipe. Also fixed the path validation. Due to
|
||
|
the consolidation of code, it would report AnyPath's
|
||
|
as invalid if they contained a property.
|
||
|
|
||
|
98-07-14 tracyf Fixed bug 5482: we now display the "Files in use"
|
||
|
dialog, if appropriate, in BasicUI mode.
|
||
|
|
||
|
98-07-14 t-caroln Added a new tool --> MsiDlgs.exe. This is only
|
||
|
built if you specify the msidlgs target. It is not built
|
||
|
with all in the makefile. The msidlgs.exe tool
|
||
|
displays the various dialog and message box resources in
|
||
|
msi.dll. It can be used for viewing various
|
||
|
localized versions of the dialogs (based off of the localized
|
||
|
strings). Syntax for the tool is msidlgs.exe
|
||
|
{msi.dll} {langId}. For example, for US English, run
|
||
|
msidlgs.exe %DARWIN%\build\debug\msi.dll 1033. For
|
||
|
German, try msidlgs %DARWIN%\build\debug\msi.dll 1031
|
||
|
|
||
|
98-07-14 malcolmh Fixed bug 6052: AF:fcache.cpp line342, running
|
||
|
command line repair: msiexec /frocums
|
||
|
{6E8DD198-AB04-11d1-B5B8-006097C998E7}
|
||
|
|
||
|
98-07-14 malcolmh Fixed bug 6051: We should define at least on more
|
||
|
enum for tagINSTALLTYPE.
|
||
|
|
||
|
98-07-14 malcolmh Fixed bug 6025: Rollback: On Win95 if Uninstall
|
||
|
fails, files flagged for delete after reboot are still in
|
||
|
WinInit.Ini
|
||
|
|
||
|
98-07-14 malcolmh Fixed bug 6025: Rollback: On Win95 if Uninstall
|
||
|
fails, files flagged for delete after reboot are still in
|
||
|
WinInit.Ini
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 5468: UILevel not persisted across a force
|
||
|
reboot action
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 6045: User with user permissions can't
|
||
|
uninstall due to Permissions on Feature Usage keys
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 5998: NT4 ZAK: assert in engine during
|
||
|
removal of testdb on client workstation
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 5948: Patching: Installing new version
|
||
|
doesn't remove patch
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 5994: LastUsedSource is not updated when
|
||
|
maintenance mode is invoked from a new source
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 6041: MsiApplyPatch(szPatchPackage, 0,
|
||
|
INSTALLTYPE_NETWORK_IMAGE, 0) crashes.
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 3586: Application Error on Alpha, when
|
||
|
MsiGetProductProperty is called.
|
||
|
|
||
|
|
||
|
98-07-13 malcolmh Fixed bug 6004: Assertion failed in iconfig.cpp:Line
|
||
|
554 when install after machine advertise.
|
||
|
|
||
|
|
||
|
98-07-11 mattwe Bug #4858: The service now shuts itself down
|
||
|
during logout/log off to enable profile roaming.
|
||
|
|
||
|
98-07-11 t-robmen Fixed bug 5590: Changed the column width for any
|
||
|
Primary Key Column that can be affected by Merge Modules
|
||
|
to 72.
|
||
|
|
||
|
98-07-10 eugend In response to bug # 5220, I've changed the look of
|
||
|
the ErrorDialog in
|
||
|
Template & Testdb.msi. I've replaced the Picture
|
||
|
control (of Bitmap type),
|
||
|
with ErrorIcon of Icon type. If this particular
|
||
|
control is present on the ErrorDialog
|
||
|
(it HAS to have the ErrorIcon name and to be of Icon
|
||
|
type), the handler got
|
||
|
the new functionality to display the following
|
||
|
- IDI_ERROR (formerly IDI_HAND) in response to
|
||
|
messages of imtFatalExit
|
||
|
type sent to the handler.
|
||
|
- IDI_WARNING (formerly IDI_EXCLAMATION) in response
|
||
|
to imtError and
|
||
|
imtWarning message types.
|
||
|
- IDI_INFORMATION (formerly IDI_ASTERISK) in response
|
||
|
to
|
||
|
imtOutOfDiskSpace and imtUser message types.
|
||
|
|
||
|
In order to further enhance the message box look,
|
||
|
when we display the icons,
|
||
|
we play as well the proper sonds.
|
||
|
|
||
|
Please note, that if the ErrorIcon control of Icon
|
||
|
type is not present, no icon
|
||
|
will get displayed.
|
||
|
|
||
|
|
||
|
98-07-10 t-caroln Fixed bug 6021, standard dialog validator. (For
|
||
|
FilesInUse, DiskCost, Error (as specified by the
|
||
|
ErrorDialog property), Cancel as well as coverage of the
|
||
|
FatalError, UserExit, Exit sequence numbers).
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 5698: We now report to the event log
|
||
|
component detection failure (via ProvideComponent).
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 6024: Machine assigned app with 2 or more
|
||
|
transforms fails on uninstall.
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 5864: We now have an event log on Win9X.
|
||
|
It's %TEMP%\msievent.log. If we would've written to
|
||
|
the real event log on NT then we write to this file on
|
||
|
Win9X. If we fail to write to it then we delete it
|
||
|
and try again.
|
||
|
|
||
|
98-07-10 cgouge VALIDATION: New ICE #23 - Bug 6017. ICE 23 validates
|
||
|
that the tab order for control in a dialog is a
|
||
|
single closed loop. Also verifies that the loop is
|
||
|
encompasses every control that has a Control_Next entry.
|
||
|
|
||
|
|
||
|
98-07-10 mattwe Added the ability to set an alternative source directory
|
||
|
for msifiler. This allows you to get file sizes/versions
|
||
|
from a swamp type directory, instead of having a
|
||
|
distribution image. (For instmsi/copymsi primarily.)
|
||
|
|
||
|
98-07-10 tracyf In response to bug 3495, A new property is now written to
|
||
|
the Admin property stream: IsAdminPackage. This property
|
||
|
will be available and set to a value of "1" when running
|
||
|
from a package that was created by an Admin installation.
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 5993: Cannot invoke a patch from a path
|
||
|
that has a space in it.
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 5232: consolidated in-progress properties
|
||
|
so we don't repeat feature selections
|
||
|
|
||
|
98-07-10 malcolmh Fixed bug 5171: reboot during (after) managed app
|
||
|
install with full UI not using elevated privs.
|
||
|
|
||
|
Reboot is again a method of the server to allow
|
||
|
managed apps to reboot even when the user is not allowed
|
||
|
to.
|
||
|
|
||
|
98-07-09 johndelo Made provision for localized string resources.
|
||
|
Directory for localized .res files: DARWIN\SRC\INTL
|
||
|
German translation of all strings, but not final strings.
|
||
|
French and Arabic only partially translated for test.
|
||
|
Still need to deal with right-to-left switching.
|
||
|
|
||
|
98-07-09 t-caroln Fixed bug 6005 -- Validation. Version string
|
||
|
validation failed on 99.99.9999.9999. Now works (last 9999
|
||
|
was failing).
|
||
|
|
||
|
98-07-09 davidmck Fixed bug 5407 - avoiding powerdown when doing an
|
||
|
install. We have a hidden window to handle powerdown
|
||
|
queries. This may cause some windowing oddities, so be
|
||
|
on the lookout for such issues.
|
||
|
|
||
|
98-07-09 davidmck Fixed bug 5966, binary data now shows up as
|
||
|
"BinaryData" in a formatted record.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4309
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-09 t-caroln Fixed bug 4107 -- setting and getting of a FILETIME
|
||
|
property from the summary information stream. Now
|
||
|
when setting, properly converts from Variant to System
|
||
|
to Local to File. When retrieving, converts from
|
||
|
File to Local to System to Variant. Now both API
|
||
|
output, msiinfo output, and export of _SummaryInformation
|
||
|
"table" match.
|
||
|
|
||
|
98-07-08 malcolmh Fixed transform bugs:
|
||
|
|
||
|
5170: Need to pin "secure" transforms on NT5
|
||
|
5886: If the transforms list is preceded by @ and
|
||
|
multiple transforms are used then only the first is
|
||
|
found at the source during first-run
|
||
|
5887: First-run doesn't respect TRANSFORMSATSOURCE
|
||
|
property
|
||
|
5888: Specifying storage transform +
|
||
|
TRANSFORMSATSOURCE property causes storage transform to
|
||
|
be ignored during maintenance mode
|
||
|
5901: First-run doesn't respect TRANSFORMSATSOURCE
|
||
|
policy
|
||
|
|
||
|
We now have a new kind of transform: the secure
|
||
|
transform. It's indicated by the "|" at the front of the
|
||
|
transform list. There's also a policy value
|
||
|
"TransformsSecure" and a property "TRANSFORMSSECURE" that can
|
||
|
be used to trigger secure transforms. We will pin
|
||
|
any transform marked as secure so that it stays in the
|
||
|
client-side cache.
|
||
|
|
||
|
98-07-08 malcolmh Fixed bug 5381: Darwin: launching more than 3 or 4
|
||
|
setups causes darwin to not respond.
|
||
|
|
||
|
98-07-08 malcolmh Fixed 5982: StartImpersonating w/o StopImpersonating
|
||
|
CMsiVolume::SetUNCServer
|
||
|
|
||
|
98-07-08 davidmck Changes MsiEnumClients internal code. This shouldn't
|
||
|
affect how it works on the outside, but might, so
|
||
|
the API should be tested. This change was made so that
|
||
|
for calls internally, we'll keep the key opened and
|
||
|
saves a bit of time.
|
||
|
|
||
|
98-07-08 malcolmh Fixed bug IMsiServer::SetLastUsedSource fails when
|
||
|
called while an install is in progress for a different
|
||
|
user.
|
||
|
|
||
|
98-07-07 malcolmh Fixed bug 5959. crash in msi.dll running deferred CA
|
||
|
during removal
|
||
|
|
||
|
98-07-07 malcolmh Fixed bug 5946: MsiProvideComponent crashes after
|
||
|
avertise.
|
||
|
|
||
|
98-07-07 malcolmh Fixed (again) bug 3988. Local caching path should
|
||
|
include product code or something unique per product.
|
||
|
|
||
|
We now correctly append the product code to the
|
||
|
cached path on Win9X and for machine installs.
|
||
|
|
||
|
98-07-07 chetanp bug 5957 - we now allow reg types other than REG_SZ
|
||
|
to be written as default values. This was previously
|
||
|
explicitly disallowed since it fails on Win95. So
|
||
|
now this will work on WinNT and Win98 but fail on Win95
|
||
|
(as the Win API call will fail).
|
||
|
|
||
|
98-07-07 t-caroln Fixed bug 3589. For temporary databases (databases
|
||
|
w/out input storage), we mark any created columns as
|
||
|
temporary by default. Formerly we were allowing
|
||
|
persistent columns in temporary databases.
|
||
|
|
||
|
98-07-07 andrewh 5955 - Assert before bringing up Insert your CD
|
||
|
dialog. Assert fixed, it was using GetSize on a
|
||
|
tempbuffer for string length instead of a strlen call.
|
||
|
|
||
|
98-07-07 bench Fixed bug 3632 (again): when an error occurs and
|
||
|
logging is not already enabled, a dynamic log is
|
||
|
created. The latest fix is to turn on logging for just
|
||
|
errors and warnings, instead of all log modes.
|
||
|
|
||
|
98-07-07 bench Fixed bug 5959: self-reg errors are now ship errors,
|
||
|
and will have the <A><R><I> button options in ship
|
||
|
Darwin.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4307
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-07 tracyf For bug 2721, We now honor the "NoDrives" policy, under the key
|
||
|
"HKCU\Software\Microsoft\windows\CurrentVersion\Policies\Explorer".
|
||
|
The number stored under the "NoDrives" value is treate as a 26-bit
|
||
|
array, one bit for each drive (i.e. bit 0 = drive A, bit 1 = drive B,
|
||
|
etc). For any bit that's set, we now hide that drive from the user
|
||
|
in the Browse dialog, and prevent that drive from being selected
|
||
|
as the root volume for TARGETDIR. The one exception is that if
|
||
|
ALL local fixed drives are disabled, TARGETDIR will still default
|
||
|
to the drive containing the Windows directory (regardless of
|
||
|
whether that drive is disabled), and thus that drive will also
|
||
|
appear in the Browse dialog.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4306
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-04 malcolmh The RedirectComponent table is obsolete, and has
|
||
|
been for a number of months.
|
||
|
|
||
|
98-07-03 t-caroln Fixed bug -- 5087 dealing with the cancel button
|
||
|
during an MsiSpy install. On the action dialog,
|
||
|
clicking cancel did not cause the install to cancel. The
|
||
|
reason was not internal Darwin code, but a mis-authored
|
||
|
package. The ControlEvent for this cancel button
|
||
|
was missing!! And courtesy of Malcolhm's suggestion,
|
||
|
ICE17 caught this error as well. Fixed by adding the
|
||
|
ControlEvent for the Cancel button on the
|
||
|
ActionDialog.
|
||
|
|
||
|
98-07-02 t-caroln VALIDATION -- new ICEs #21, 22. ICE21 validates
|
||
|
that all components are mapped to a feature (in
|
||
|
FeatureComponents table). ICE22 validates that the Feature_
|
||
|
and Component_ referenced in the PublishComponent
|
||
|
table is an actual mapping listed in the
|
||
|
FeatureComponents table.
|
||
|
|
||
|
98-07-02 chetanp fixed bug 5458 - We now prevent an older component
|
||
|
(lesser keyfile) from overwriting an already DARWIN
|
||
|
installed newer component (implying, if the file exists
|
||
|
without having being installed by darwin - we go
|
||
|
ahead and install the component irrespective of the
|
||
|
version - since we cannot trust the previous install to
|
||
|
be complete/ exact).
|
||
|
|
||
|
98-07-02 t-caroln Fixed bugs 4335 and 5913. Re-wrote
|
||
|
CMsiView::Modify. Delete and Update can now be called after Insert
|
||
|
and InsertTemporary. Seek now only requires primary
|
||
|
key columns to be filled in. Formerly required all
|
||
|
non-null fields to be filled in with dummy values + the
|
||
|
primary key fields.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4302
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-02 malcolmh Fixed bug 3794: AdminInstallFinalize needs to set
|
||
|
the DISABLEMEDIA property during admin install if
|
||
|
installing from compressed source
|
||
|
|
||
|
98-07-02 malcolmh Fixed bug 5786: USERNAME="" and COMPANYNAME="" do
|
||
|
not suppress User Name and Organization field contents
|
||
|
in Setup.
|
||
|
|
||
|
We now have two new properties, NOUSERNAME and
|
||
|
NOCOMPANYNAME. These will suppress our population of the
|
||
|
USERNAME and COMPANYNAME fields.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4302
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-02 malcolmh Fixed bug 5929: '*' log mode should not include 'v'
|
||
|
|
||
|
98-07-02 davidmck Fixed bug 5804: Using service again after a fatal
|
||
|
error on the service side. We were not zeroing all the
|
||
|
freed pointers, which caused problems the next time
|
||
|
around.
|
||
|
|
||
|
98-07-02 davidmck Fixed bug 4943, DBCS command lines would not work
|
||
|
previously.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4302
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-02 chetanp bug 5924 - fixed "progids and viprogids not being
|
||
|
written" problem.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4302
|
||
|
-----------------------------
|
||
|
|
||
|
98-07-01 bench Contrary to previous relnotes entries, verbose
|
||
|
logging is not yet enabled at this time. Verbose debug
|
||
|
output is though.
|
||
|
|
||
|
98-07-01 chetanp bug 5687 - remove component thrashing behaviour from
|
||
|
darwin
|
||
|
|
||
|
98-07-01 tracyf For bugs 5690 and 5861, verbose logging of all final
|
||
|
feature/component states, and of all file version
|
||
|
checks (in order to determine whether to overwrite
|
||
|
existing files) has been added.
|
||
|
|
||
|
98-06-29 johndelo Completed update of MSI type library, per David Boctor.
|
||
|
ProgId is WindowsInstaller.Installer - note change!
|
||
|
For debug-only access, WindowsInstaller.Debug
|
||
|
Old definitions will remain as well until 7/7/98 to
|
||
|
give time for update of test and documention.
|
||
|
Advise to uninstall or unregister old MSI version.
|
||
|
Interface GUIDS for OLE automation have changed.
|
||
|
Strong typing of objects and method completion
|
||
|
now work with MSIin VB and VBA. For object model,
|
||
|
use object browser, oleview.exe, or AutoApi.cpp.
|
||
|
Nearly all public API functions are now exposed.
|
||
|
Help string have been removed too save space, as
|
||
|
is conventional, but are left in for DEBUG build.
|
||
|
Same story with context IDs on enumeration value.
|
||
|
|
||
|
98-06-29 malcolmh Fixed bugs 5847, 5856, 5857, 5811. Fixed a bunch of
|
||
|
API call that didn't allow a null buffer to be
|
||
|
specified in conjuction with a non-null buffer count
|
||
|
parameter. Ex: MsiDoThis(szProduct, 0, &pcchBuf). This call
|
||
|
would typically be followed by a call like
|
||
|
MsiDoThis(szProduct, szBuffer, &pcchBuf)
|
||
|
|
||
|
98-06-29 malcolmh Fixed bug 4983: Suggestion: Could MsiZap add a
|
||
|
command line argument to take a product code. We can now
|
||
|
remove a single product's information with the 'T'
|
||
|
option.
|
||
|
|
||
|
98-06-29 malcolmh Fixed bug 5721: Logging: Need to add function calls
|
||
|
and parameters to debugmon output
|
||
|
|
||
|
|
||
|
98-06-29 malcolmh Fixed bug 5797, 5582. The feature cache is now
|
||
|
per-process.
|
||
|
|
||
|
98-06-29 chetanp bug 5858 - fixed darwin to NOT ignore assigned
|
||
|
transforms at first run
|
||
|
|
||
|
98-06-29 bench Bugs 5860 and 5862: several changes to improve
|
||
|
logging and diagnostic output:
|
||
|
|
||
|
1) a registry value can be used to turn on logging. the value is:
|
||
|
|
||
|
HKLM\Software\Policies\Microsoft\Windows\Installer
|
||
|
|
||
|
Name: Logging Value: REG_SZ, log mode ("ifpmcuewar")
|
||
|
|
||
|
2) new log mode: 'v' for "verbose". Currently this log mode
|
||
|
triggers all debug output to be written to the log, in
|
||
|
both ship and debug Darwin. More information will be written
|
||
|
in the future when this mode is set.
|
||
|
|
||
|
3) a registry value can be used to switch on different levels
|
||
|
of debug output in ship or debug Darwin. the value is:
|
||
|
|
||
|
HKLM\Software\Policies\Microsoft\Windows\Installer
|
||
|
|
||
|
Name: Debug Value: REG_DWORD
|
||
|
|
||
|
value & 0x1: debug output is turned on
|
||
|
(default is off for ship, on for debug)
|
||
|
value & 0x2: "verbose" debug output is turned on
|
||
|
|
||
|
98-06-29 t-caroln Validation. ICE18 -- fixed bug 5684. Required to
|
||
|
be updated from < 32 char to < 64 char due to Bench's
|
||
|
fix of bug 5678.
|
||
|
|
||
|
98-06-29 malcolmh Fixed bug 5866: Cached transforms are not deleted
|
||
|
upon uninstall.
|
||
|
|
||
|
98-06-29 malcolmh Fixed bug 5665: Maintenance mode fails when a
|
||
|
product has run from source transforms
|
||
|
|
||
|
98-06-28 malcolmh Fixed bug 3998: Local caching path should include
|
||
|
product code or something unique per product. We now
|
||
|
place transforms and icons in per-product directories
|
||
|
named with the product code of the product.
|
||
|
|
||
|
98-06-28 malcolmh Fixed bug 5247: Crash in version.dll when calling
|
||
|
GetFileVersionInfo for currupt dll on NT4 - need
|
||
|
workaround
|
||
|
|
||
|
98-06-27 malcolmh Fixed bug 5703: Should invalidate RFS features when
|
||
|
the server is down, regardless of Client Side
|
||
|
|
||
|
|
||
|
98-06-27 malcolmh Bug 5658: We now have a policy value for logging.
|
||
|
Set the Logging value to any combination of our log
|
||
|
characters and we'll generate a log using these modes.
|
||
|
Command-line log flag or MsiEnableLog both override
|
||
|
this policy.
|
||
|
|
||
|
98-06-27 malcolmh Fixed bug 4042: Calling MsiGetComponentPath on a
|
||
|
registry keypath no longers returns a 50+ offset for RFS
|
||
|
keys.
|
||
|
|
||
|
98-06-26 chetanp fixed bug 5699 - we now place the cached icons/
|
||
|
transforms under the APPDATA folder on Win9x as well, if
|
||
|
present. This fixes roaming scenarios where the
|
||
|
APPDATA folder is defined. If the folder is not present,
|
||
|
we do what we always did - place it under the Windows
|
||
|
folder.
|
||
|
|
||
|
98-06-26 tracyf The following new properties have been defined:
|
||
|
|
||
|
PRIMARYFOLDER:
|
||
|
A global property that allows the author to designate
|
||
|
a "primary" folder for the installation. The value
|
||
|
given to this property must be the key name of a
|
||
|
directory record found in the Directory table. The
|
||
|
installer will use the resolved path of this folder to
|
||
|
determine the volume used when setting values for the
|
||
|
PrimaryVolumePath, PrimaryVolumeSpaceAvailable,
|
||
|
PrimaryVolumeSpaceRequired, and PrimaryVolumeSpaceRemaining
|
||
|
properties.
|
||
|
|
||
|
PrimaryVolumePath:
|
||
|
The Installer sets the value of this property to the
|
||
|
path of the volume designated by the PRIMARYFOLDER
|
||
|
property. For example, if the folder referenced by
|
||
|
PRIMARYFOLDER resolves to "D:\ProgramFiles",
|
||
|
PrimaryVolumePath will be set to "D:"
|
||
|
|
||
|
PrimaryVolumeSpaceAvailable:
|
||
|
The Installer sets the value of this property to a
|
||
|
string representing the total number of bytes
|
||
|
available, in units of 512, on the volume referenced by the
|
||
|
PrimaryVolumePath property. For example, if
|
||
|
PrimaryVolumePath is set to "D:", and volume D: has
|
||
|
446,134,272 bytes free, PrimaryVolumeSpaceAvailable will be set
|
||
|
to 871356. Note: if this value is to be displayed
|
||
|
within a static Text control, the new FormatSize style bit
|
||
|
(see below) can be used on the control to automatically format
|
||
|
and label this number in units of KB, MB, or GB as appropriate.
|
||
|
This goes for the other properties below as well.
|
||
|
|
||
|
PrimaryVolumeSpaceRequired:
|
||
|
The Installer sets the value of this property to a
|
||
|
string representing the total number of bytes required
|
||
|
by all currently selected features on the volume
|
||
|
referenced by the PrimaryVolumePath property. As with
|
||
|
the PrimaryVolumeSpaceAvailable property, this number
|
||
|
is expressed in units of 512 bytes.
|
||
|
|
||
|
PrimaryVolumeSpaceRemaining:
|
||
|
The Installer sets the value of this property to a
|
||
|
string representing the total number of bytes that
|
||
|
would be remaining on the volume referenced by the
|
||
|
PrimaryVolumePath property, if all the currently selected
|
||
|
features were to be installed. As with the
|
||
|
PrimaryVolumeSpaceAvailable property, this number is expressed
|
||
|
in units of 512 bytes.
|
||
|
|
||
|
|
||
|
The following new Control style bit has been defined:
|
||
|
|
||
|
FormatSize Control Style Bit:
|
||
|
Decimal: 524288
|
||
|
Hex: 0x00080000
|
||
|
If this bit is set for a static text control, the
|
||
|
control will automatically attempt to format the
|
||
|
displayed text as a number representing a count of bytes.
|
||
|
For proper formatting, the control's text must be set
|
||
|
to a string representing a number expressed in units
|
||
|
of 512 bytes. The displayed value will then be
|
||
|
formatted in terms of kilobytes (KB), megabytes (MB), or
|
||
|
gigabytes (GB), and displayed with the appropriate
|
||
|
string representing the units
|
||
|
|
||
|
Here's an example of the formatting resulting from
|
||
|
use of the FormatSize style bit:
|
||
|
Assume the text of a static Text control is defined
|
||
|
in the Control table to be
|
||
|
[PrimaryVolumeSpaceRequired]. At runtime, the installer will resolve this
|
||
|
property to the total number of bytes required for the
|
||
|
install, in units of 512. If the total bytes required
|
||
|
resolved to, say, 18,336,768, the value for the
|
||
|
PrimaryVolumeSpaceRequired property would be set to
|
||
|
"35814" (18336768 / 512), and the number would be displayed
|
||
|
in the control as "17MB".
|
||
|
|
||
|
|
||
|
98-06-25 malcolmh Fixed bug 5180: Crash running Unicode Darwin with
|
||
|
Advertised Msispy install.
|
||
|
|
||
|
|
||
|
98-06-25 malcolmh Fixed bug 4441: MsiGetProductInfo should accept DD
|
||
|
where a ProductCode is required.
|
||
|
|
||
|
|
||
|
98-06-25 malcolmh Fixed bug 5619: Performance:MsiUseFeature should be
|
||
|
able to avoid feature validation. We now have a new
|
||
|
api: MsiUseFeatureEx that can take
|
||
|
INSTALLMODE_NODETECTION which disables keyfile detection.
|
||
|
|
||
|
98-06-25 malcolmh DEV: Added ability to unload a late-bound DLL.
|
||
|
Syntax: DLL::Unbind(). Ex: OLE32::Unbind().
|
||
|
|
||
|
98-06-25 chetanp fixed bug 5844 - fixed incorrect reg keypath
|
||
|
registration for registry records with special tokens (+, -,
|
||
|
*)
|
||
|
|
||
|
98-06-25 johndelo Updated automation type library per David Boctor specs.
|
||
|
Old definitions will remain as well until 7/7/98 to
|
||
|
give time for update of test and documention.
|
||
|
ProgIds and descriptions have been changed:
|
||
|
WindowsInstaller.Application & WindowsInstaller.Debug
|
||
|
Typelib name and version have changed:
|
||
|
WindowsInstaller = Microsoft Windows Installer 1.0 Object Library
|
||
|
Internal automation version also changed to 1.0
|
||
|
Enumerations now all begin with "msi".
|
||
|
Following current convention, help strings have been
|
||
|
removed to save space in the dll. Help IDs still present.
|
||
|
For current values, use typelib in Msi.DLL or
|
||
|
consult the end of the source file: AutoApi.cpp.
|
||
|
|
||
|
98-06-25 t-caroln Fixed bug 5841, Validation. In order to ensure all
|
||
|
GUIDs work correctly (particularly after
|
||
|
compression), they need to all be UpperCase. The GUID category
|
||
|
validator now validates that the GUIDs are indeed all
|
||
|
upper case. The msispy and msival2 msi's had to be
|
||
|
updated in order to validate correctly.
|
||
|
|
||
|
98-06-25 bench Fixed bug 5820. The LIMITUI property caused
|
||
|
properties set on the command line to not be processed.
|
||
|
|
||
|
98-06-24 malcolmh Fixed bug 5814: Cancel button flashes in basic UI.
|
||
|
|
||
|
98-06-24 malcolmh Fixed bug 5776: Network resource dialog has an
|
||
|
accelerator key that fails to work.
|
||
|
|
||
|
98-06-24 malcolmh Fixed bug 5716: Should notify the shell whenever
|
||
|
application state changes.
|
||
|
|
||
|
98-06-24 malcolmh Fixed bug 3799: Make sure all environment variables
|
||
|
are expanded in the context of the user.
|
||
|
|
||
|
98-06-24 chetanp bug 4299, 4330 fixed. - we now have the additional
|
||
|
restriction that the RegisterProgIdInfo,
|
||
|
RegisterMIMEInfo are after the RegisterClassInfo and the
|
||
|
RegisterExtensionInfo actions and the UnregisterProgIdInfo,
|
||
|
UnregisterMIMEInfo are after the UnregisterClassInfo
|
||
|
and the UnregisterExtensionInfo actions. This is in
|
||
|
accordance with the current recommended sequence.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4224
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-24 bench Patches created by a build prior to 4224 will not
|
||
|
work with 4224 and beyond. All patches must be
|
||
|
recreated. This incompatibility is caused by a change in
|
||
|
the file format for patch files.
|
||
|
|
||
|
98-06-23 t-caroln Fixed bug 5812 -- Tools now use _stprintf (compiles
|
||
|
to sprintf and wsprintf depending on UNICODE).
|
||
|
wsprintf only works up to 1024 bytes, which could fail to
|
||
|
copy everything for some tools. Tools affected were:
|
||
|
msialter, msidb, msidiff, msifiler, msiinfo,
|
||
|
msimerg, msitran, msival, and msival2.
|
||
|
|
||
|
98-06-23 t-caroln Fixed bug 5647 -- As per chetan's fix for 4512,
|
||
|
AnyPath can be LFN (SPN|LPN). Validation now handles
|
||
|
this case.
|
||
|
|
||
|
98-06-23 t-caroln Fixed bug 4010 -- msitran -v option not work when
|
||
|
transforming an emptydb to a fulldb. This actually
|
||
|
wasn't a "real" error, but if the user used the fulldb
|
||
|
as the db in the msitran -v argument list, then we
|
||
|
wouldn't handle it correctly (# primary keys and columns
|
||
|
would double). Now, it is handled correctly.
|
||
|
However, the emptydb should have been used as the base.
|
||
|
|
||
|
98-06-19 t-caroln New ICE's -- 17 (bug 5773), 18(sort of bug 3317), 19
|
||
|
(bug 3317)
|
||
|
Updated ICE02 to include the ODBCDataSource table
|
||
|
check
|
||
|
|
||
|
ICE17 -- validates ControlType dependencies in the
|
||
|
Control table for the Bitmap, Icon, ListBox,
|
||
|
ListView, ComboBox, RadioButtonGroup, and PushButton control
|
||
|
types.
|
||
|
ICE18 -- validates KeyPath column of Component table
|
||
|
if KeyPath is NULL (Directory refernce).
|
||
|
ICE19 -- validates advertising.
|
||
|
Class,TypeLib,Extension,PublishComponent,Shortcut tables must reference
|
||
|
Components with a ComponentId. All but the shortcut
|
||
|
table must reference components with File KeyPaths.
|
||
|
The Shortcut can also reference a Directory KeyPath.
|
||
|
|
||
|
|
||
|
98-06-19 mattwe 5635: Improved location of autoexec.bat for UpdateEnvironment
|
||
|
on Win95. You can use WIN95_ENVIRONMENT_TEST to override
|
||
|
our detection. We look first to the windows volume, then
|
||
|
search all fixed disks for config.sys, and lastly fall back
|
||
|
to the windows volume. There's more that can be done, but
|
||
|
for very little return.
|
||
|
|
||
|
5769: Fixed a caching problem with the path object.
|
||
|
If you call GetFilePath with a file, change some other part of
|
||
|
the path, and then call with the same file, you will get
|
||
|
spurious results. This affects nearly every path method.
|
||
|
|
||
|
98-06-19 davidmck Made a number of performance improvements. The
|
||
|
trickiest is that we try to estimate the cost of the
|
||
|
script and only compute the exact cost if we really need
|
||
|
to.
|
||
|
The definition of "really need to" is when the
|
||
|
install without the script will fit, but the install with
|
||
|
the maximum script for the database does not. Testing
|
||
|
in cases where we are near the edge would be
|
||
|
interesting.
|
||
|
Our "exact" script cost is also an estimate, but a
|
||
|
more precise estimate than our guess, so you can
|
||
|
probably still get some border cases where we don't install
|
||
|
and you might have just enough space, but likely you
|
||
|
couldn't use the product then.
|
||
|
|
||
|
98-06-18 bench Bug 5752: We now return
|
||
|
ERROR_INSTALL_PACKAGE_VERSION from MsiAdvertiseScript and
|
||
|
MsiProcessAdvertiseScript when the script passed in has an unsupported
|
||
|
script version.
|
||
|
|
||
|
98-06-18 malcolmh Fixed bug 5748: AF in istring.cpp line 1123
|
||
|
|
||
|
98-06-18 mattwe 5729: You can now put environment variables on the
|
||
|
command line again, with %VAR=Foo. A previous
|
||
|
bug was to assure that all properties started with
|
||
|
an alphanumeric character, and busted this.
|
||
|
|
||
|
98-06-18 malcolmh Fixed bugs 5742. We now assert if you don't declare
|
||
|
your DLL custom action __stdcall.
|
||
|
|
||
|
98-06-18 mattwe 5629 Fixed a debug only crash with long command lines.
|
||
|
We now resize the buffer on the fly for the offending
|
||
|
debug string. However, it will still truncate at 1024
|
||
|
character and give slightly wacky output.
|
||
|
|
||
|
Increased the maximum length for a property value to
|
||
|
1024 characters, and cleaned up the code to ease
|
||
|
increasing it further if needed.
|
||
|
|
||
|
98-06-18 andrewh 5750, Couldn't uninstall office9, Assert "Cursor not
|
||
|
reset", new error checking caught a case of a cursor
|
||
|
being used before the previous user reset it
|
||
|
|
||
|
5735: CustomAction cannot reference File table on uninstall,
|
||
|
this fix affects FormatText so it can now reference files in
|
||
|
components whose states are either not changing or are
|
||
|
scheduled for removal. The author should condition
|
||
|
CustomActions, author components appropirately to not
|
||
|
use a file after it has been deleted.
|
||
|
|
||
|
5746,5747 - Don't list msiexec in the FilesInUse
|
||
|
list, list the correct file that is in use in the log.
|
||
|
|
||
|
98-06-18 mattwe Bug 4278: MoveFile no now longer fails if the full
|
||
|
file attributes cannot succesfully be copied. This
|
||
|
typical case is that the file has security such that
|
||
|
we can't access them.
|
||
|
|
||
|
98-06-18 bench Bug 5678: as values in the RunOnce key must have
|
||
|
names < 32 characters, we no longer use the product name
|
||
|
in this field. Rather, the product code is
|
||
|
compressed and truncated to provide an almost-unique name
|
||
|
that is < 32 characters.
|
||
|
|
||
|
98-06-18 bench Bug 5644: add the ability to detect products in a
|
||
|
range of versions using the Upgrade table and the
|
||
|
FindRelatedProducts action. Previously, you could only
|
||
|
use the Upgrade table to detect a product whose version
|
||
|
is greater than or less than a single version. Now,
|
||
|
you may supply a range of version of the syntax
|
||
|
"X.X.X.X:X.X.X.X" where the ':' seperates the two. The
|
||
|
Operator column value is interpreted differently when
|
||
|
this syntax is found. Now, adding a 2 to the value
|
||
|
means the lower version is inclusive, and adding a 4
|
||
|
means the upper version is inclusive. The two
|
||
|
versions are exclusive by default.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4218
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-17 t-caroln Added MsiDefs.h to the Headers target. This copies
|
||
|
the file from the %DARWIN%\src\inc to the %COMMON%
|
||
|
folder in the build directory so that the tools can use
|
||
|
them. (%DARWIN%\src\inc is not an Include path for
|
||
|
the tools).
|
||
|
|
||
|
98-06-17 t-caroln Fixed bugs 5727, 5728 -- Validation. Validation was
|
||
|
returning the wrong error code (NotInSet) for
|
||
|
OverFlow and UnderFlow errors. Changed to return the
|
||
|
correct error codes.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4217
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-17 malcolmh Fixed bug 5656: Custom Action hang darwin when
|
||
|
trying to send messages to update progress
|
||
|
|
||
|
98-06-16 bench Fixed bug 5715: assert when patching run-from-source
|
||
|
install.
|
||
|
|
||
|
98-06-16 bench Changed the versions for all Darwin files, moving
|
||
|
the build number from the fourth field to the third.
|
||
|
This will allow future "letter" builds like 4127a to
|
||
|
be given a new version, like 0.28.4127.1.
|
||
|
|
||
|
98-06-16 tracyf Per bug 5685, the ReserveLocal and ReserveSource
|
||
|
columns of the ReserveCost table are now non-nullable.
|
||
|
Since the original schema was wrong (and outrageous
|
||
|
disk space calculations are the resullt if these
|
||
|
columns are left Null), a schema version change is not
|
||
|
called for.
|
||
|
|
||
|
98-06-16 tracyf In response to bug 5643, the disk cost values
|
||
|
displayed in the UI for features have been changed. The
|
||
|
values displayed now represent the total cost
|
||
|
attributable to the feature *after the install is complete*,
|
||
|
i.e. without taking rollback into account. For
|
||
|
example, in previous versions of Darwin, if a feature is
|
||
|
installed on first-run, and then the install is
|
||
|
launched into maintenance mode, the disk cost for that
|
||
|
feature would always show up as 0 if rollback is enabled,
|
||
|
regardless of whether the feature is selected for
|
||
|
removal or not. Now, the displayed disk cost will
|
||
|
reflect the disk space that will be freed up after the
|
||
|
removal is complete and the rollback files are removed.
|
||
|
|
||
|
98-06-15 bench Fixed bug 5705: the end dialog displayed when /q+ is
|
||
|
used contained the string "1: 32" using ship Darwin.
|
||
|
It now displays the error strings 32 or 33 from the
|
||
|
Error table correctly.
|
||
|
|
||
|
98-06-15 t-caroln Bug 4938 -- Validation. Updated the fix. The code
|
||
|
for CustomSource was commented out after this bug due
|
||
|
to its incorrect validation of nested install CAs.
|
||
|
I've uncommented the code and changed it to work
|
||
|
correctly for other CAs. The validation of the nested
|
||
|
install CAs is left to the custom validator (one of the
|
||
|
ice's).
|
||
|
|
||
|
98-06-12 t-caroln Fixed bug 4791 dealing with filename validation.
|
||
|
The filename validation code has been consolidated into
|
||
|
one function. Both Services and the internal
|
||
|
Validation code use it (thus preventing duplicate copies of
|
||
|
the same source code).
|
||
|
|
||
|
98-06-12 tracyf Fixed bug 5413. For child features in the
|
||
|
advertised state, when the parent changes from the Local state
|
||
|
to the Source (run from network) state, the child
|
||
|
feature(s) now also go the Source state. If the parent
|
||
|
is changed back to Local, the children will go back
|
||
|
to advertised.
|
||
|
|
||
|
98-06-12 tracyf Fixed bug 4787 - the FileName column of the
|
||
|
RemoveFile table has been fixed to properly accept
|
||
|
shortName|longName syntax.
|
||
|
|
||
|
98-06-11 t-caroln Bugs 5661, 5684. Validation.
|
||
|
5661 -- Version string validator works with
|
||
|
MergeModule tables and will work in any table provided you
|
||
|
have a Language column called "Language". This
|
||
|
maintains Darwin's versioned file scenario where all
|
||
|
versioned files must have a langauge.
|
||
|
5684 - ProductName can only be 31 characters max.
|
||
|
Custom validator. ICE16
|
||
|
|
||
|
|
||
|
98-06-11 t-caroln Fixed bugs 4813, 5670, 5671 -- custom validators.
|
||
|
One if for circular references between MIME and
|
||
|
Extension tables, one if for Dialogs listed in the
|
||
|
*ExecuteSequence tables, and one if for root feature parents
|
||
|
with the ifrsFavorParent bit set.
|
||
|
|
||
|
98-06-11 t-caroln Fixed Bug 5521, added a new URL validation type..
|
||
|
|
||
|
|
||
|
98-06-11 malcolmh Fixed bug 2858: Transforms: Adding an existing table
|
||
|
to DB fails even when flagged to treat as warning
|
||
|
(ignore)
|
||
|
|
||
|
98-06-11 malcolmh Fixed bugs:
|
||
|
|
||
|
5569: "Preparing to install" string should be moved
|
||
|
into the new localizable resource
|
||
|
5570: Need to update the error strings in the msi.dll
|
||
|
resource for clarity
|
||
|
5572: Basic UI - strings need to be removed from the
|
||
|
dialogs and placed in the localized resource
|
||
|
5180: Crash running Unicode Darwin with Advertised
|
||
|
Msispy install.
|
||
|
5611 Should remove backward compatability with <1800
|
||
|
NT
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4211
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-11 mattwe /o property support is now completely removed.
|
||
|
|
||
|
98-06-10 t-caroln Bug 5657 -- fixed validation of SFN and LFN
|
||
|
(disallowing some char when we should allow and allowing
|
||
|
others when we should disallow)
|
||
|
|
||
|
98-06-10 chetanp Due to the nonexistence of common shell folders we
|
||
|
now ignore the ALLUSERS property for Win9x platforms
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4210
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-10 tracyf Bug 4775: support for a new attribute bit has been
|
||
|
added to the Attributes column of the Feature table.
|
||
|
The description of the bit to be incorporated into
|
||
|
the help file is: "The 6th bit is the
|
||
|
ifrsNoUnsupportedAdvertise bit. If this bit is set for a particular
|
||
|
feature, advertising will be disabled for that feature
|
||
|
if the operationg system shell the product is being
|
||
|
installed on does not support Darwin descriptors".
|
||
|
|
||
|
98-06-09 bench Fixed bug 5616: upgrades or patches in which the
|
||
|
InstallExecuteSequence contained the InstallExecute,
|
||
|
RemoveOldProducts and InstallFinalize actions, in that
|
||
|
order, caused an assert and crash. This has been
|
||
|
fixed.
|
||
|
|
||
|
98-06-09 davidmck I changed how InstMsi copies the files to use
|
||
|
CopyFile rather than LZCopy. LZCopy was randomly failing on
|
||
|
some machines (Bug 5622) and we don't need it so
|
||
|
CopyFile seems better.
|
||
|
|
||
|
98-06-09 tracyf Fixed bug 4287. We now automatically retry network
|
||
|
failures once during file copying, before putting up
|
||
|
the retry dialog (during quiet installs, we retry
|
||
|
once before failing and rolling back). If the network
|
||
|
failure occurred while reading or writing an open
|
||
|
file, we also now close the file and re-open before
|
||
|
retrying.
|
||
|
|
||
|
98-06-09 bench Fixed bug 5598: "Unexpected Error 2203 running
|
||
|
merged nested install". This bug exposed the fact that
|
||
|
when caching the msi in %windows%\installer, we were
|
||
|
copying the temp copy of the msi from %temp% and not
|
||
|
from the source. The fix for this bug was to copy the
|
||
|
msi from the source instead.
|
||
|
|
||
|
98-06-08 malcolmh Fixed bug 2147: Incorporate Shell Support
|
||
|
independant of OLE support.
|
||
|
|
||
|
We have 2 new properties:
|
||
|
OLEAdvtSupport
|
||
|
ShellAdvtSupport
|
||
|
|
||
|
98-06-08 t-caroln Added a new target to the makefile -- msival2. This
|
||
|
builds msival2.msi, evalcom.dll, msival2.exe, and
|
||
|
darice.cub. I have also added msival2.msi to be
|
||
|
released in the Samples folder. It contains
|
||
|
conditionalized components. The evalcom.dll ANSI version is
|
||
|
installed on the Win9X systems and the UNICODE version is
|
||
|
installed on the Winnt systems.
|
||
|
|
||
|
98-06-08 bench Fixed bug 5604: the packages simple.msi,
|
||
|
minimum.msi, schema.msi and template.msi where all made
|
||
|
platform-independent by changing the suminfo property 7 from
|
||
|
"Intel;1033" to ";1033".
|
||
|
|
||
|
98-06-08 andrewh 5612 - Fix ship Network Resource dialog, the line to
|
||
|
read the path from the editbox was debug-only,
|
||
|
causing us to display garbled characters in an Invalid
|
||
|
Path messagebox... (bug 5521 fixed by this as well)
|
||
|
|
||
|
98-06-08 bench Fixed bug 5597: some errors (those generated
|
||
|
directly from the actions) where not using the error strings
|
||
|
from the Error table. They now do.
|
||
|
|
||
|
98-06-08 bench Fixed bug 5615: we now do not bind files (with
|
||
|
BindImage) that we do not install. Most likely files we
|
||
|
don't install because they have equal or newer
|
||
|
versions have already been bound, so this is a slight
|
||
|
performance gain.
|
||
|
|
||
|
98-06-05 t-caroln Validation bugs -- 5107, 5613. Fixed. 5107 dealt
|
||
|
with removing obsolete test for '@' in Cabinet
|
||
|
category. 5613 was adding iveBadFormatted as a case for the
|
||
|
MapError function in the API.
|
||
|
|
||
|
98-06-05 chetanp bug 5588 - change to skip type library registration
|
||
|
when going from advertised to advertised after
|
||
|
reboot.
|
||
|
|
||
|
98-06-05 bench Fixed bug 5617; we were calling lstrlen on a null
|
||
|
pointer in MsiConfigureProduct which sometimes AV'ed.
|
||
|
We don't do this anymore.
|
||
|
|
||
|
98-06-04 bench Fixed bug 2406: embedded cabinets where being
|
||
|
stripped from admin packages, since the admin source is
|
||
|
always uncompressed. Now, the size of the package is
|
||
|
also reduced to reflect the missing streams. This code
|
||
|
change effects database caching as well, as to two
|
||
|
features now share the code that strips cabinets.
|
||
|
|
||
|
98-06-04 chetanp bug 5579 - changed CMsiEngine::SetFeature's logic
|
||
|
for setting the fNeverTrackParent variable.
|
||
|
|
||
|
98-06-04 tracyf Bug 5116: For MsiGetFeatureCost, the
|
||
|
MSICOSTTREE_PRODUCT constant is unsupported, and has been removed
|
||
|
from msiquery.h and the help file.
|
||
|
|
||
|
98-06-04 tracyf Fixed bug 5253 - we can now extract zero byte files
|
||
|
from cabinets embedded in an MSI stream.
|
||
|
|
||
|
98-06-04 tracyf Fixed bug 4374 (slimmed down the basic UI dialog).
|
||
|
|
||
|
98-06-03 malcolmh Fixed bug 5574: Creating a shortcut on a network
|
||
|
drive causes Assert.
|
||
|
|
||
|
The assert was incorrect.
|
||
|
|
||
|
98-06-03 malcolmh Bug 5342: AD: Self registering DLL-s cannot be
|
||
|
configured to run with elevated priledges.
|
||
|
|
||
|
We now self-reg elevated for managed app, and
|
||
|
impersonated otherwise.
|
||
|
|
||
|
98-06-03 malcolmh Fixed bug 5505. MsiProvideComponentFromDescriptor no
|
||
|
longer uses the feature cache. This doesn't affect
|
||
|
any of the other MsiProvide* functions.
|
||
|
|
||
|
98-06-03 t-caroln Added -Z option to msival2.exe. When using this
|
||
|
option, you can ignore specifying the evaluation file as
|
||
|
the -Z means to use the latest darice.cub file which
|
||
|
is available off the Iceman website. Syntax is then
|
||
|
msival2.exe {database} -Z. Note, msival2.exe will
|
||
|
soon be released once evalcom.dll is ANSI enabled.
|
||
|
|
||
|
98-06-03 t-caroln Fixed bug 4035 which Validates Type 35 and 51
|
||
|
CustomAction usage. This is available as Ice12. Currently
|
||
|
the only site to access it is at the Iceman website.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4203
|
||
|
-----------------------------
|
||
|
|
||
|
98-06-02 malcolmh Fixed bug 2477: Need to clean up verbs in the
|
||
|
explorer. The verbs now display correctly.
|
||
|
|
||
|
|
||
|
98-06-02 mattwe We now assert with a message when we have a /O
|
||
|
(old property format) in the command line.
|
||
|
It still continues to work if you ignore the assert,
|
||
|
but the tests and CAs *should* be up to date by now.
|
||
|
|
||
|
98-06-02 chetanp changed font version handling - we now allow font
|
||
|
version strings to be of a more generic form -
|
||
|
[text]<number>[<dot> OR colon>]<number>[<semicolon> OR <comma> OR <space> OR <tab>][text]
|
||
|
|
||
|
98-06-02 tracyf The Installer now displays a progress bar during the
|
||
|
final costing/script compilation phase. Previously,
|
||
|
an empty progress bar would sit on the screen for up
|
||
|
to 2-3 minutes (or longer) before the actual script
|
||
|
execution begins. Now, the progress bar will run to
|
||
|
completion, indicating the end of the preliminary
|
||
|
phase, and then will start again for script execution.
|
||
|
In avoid misleading the user, a new ScriptInProgress
|
||
|
ControlEvent has been added, which allows a special
|
||
|
explanatory string to be displayed during the first
|
||
|
progress bar. The same text control in the
|
||
|
EventMapping table that subscribes to the TimeRemaining
|
||
|
ControlEvent should also subscribe to the ScriptInProgress
|
||
|
ControlEvent, with "ScriptInProgress" as the name of
|
||
|
both the Event and the Attribute. In addition, the
|
||
|
string to be displayed should be added to the UIText
|
||
|
table, also with the name "ScriptInProgress". For
|
||
|
instance, in the template MSI, this string was added with
|
||
|
the text "Gathering required information...".
|
||
|
|
||
|
If executing with Basic UI, the "ScriptInProgress" string
|
||
|
is pulled from the error table (new error string 21), and
|
||
|
is automatically displayed at the appropriate time. For
|
||
|
existing databases, this new error string should be added
|
||
|
(simply no string will be displayed if it is not found).
|
||
|
|
||
|
98-06-02 tracyf Fixed a number of bugs related to the "time
|
||
|
remaining" indicator on the progress dialog. First, while
|
||
|
more than 60 seconds are estimated to remain for the
|
||
|
install, the "time remaining" now updates every 15
|
||
|
seconds, and displays only "xx minutes". Once the time
|
||
|
remaining drops below 60 seconds, the display updates
|
||
|
every second, and displays only "xx seconds". Note that
|
||
|
for this to display properly during full UI, the TimeRemaining
|
||
|
string in the UIText table needs to modified in existing
|
||
|
databases, to this form: "Time remaining: {[1] minutes }{[2] seconds}"
|
||
|
(this modification has been made in the standard template MSI).
|
||
|
|
||
|
Also, other problems, such as negative time values, and time
|
||
|
estimates becoming skewed when alerts are displayed, have been
|
||
|
fixed.
|
||
|
|
||
|
98-06-01 malcolmh Fixed bug 5536: MsiGetComponentPath doesn't handle
|
||
|
the case when lpPathBuf==0 and pcchPathBuf != 0
|
||
|
|
||
|
98-06-01 t-caroln Fixed bug 5553. This bug was caused by the fix for
|
||
|
bug 5534. Now we use a class to ensure that the View
|
||
|
and Stream are released in the correct order (View
|
||
|
must be last). Also this encapsulates all of the
|
||
|
releasing that has to be done. All of this occured in
|
||
|
the FindAndRunAction code and was related to custom
|
||
|
actions.
|
||
|
|
||
|
|
||
|
98-05-29 malcolmh Fixed bugs:
|
||
|
|
||
|
3927 Multiple but incompatible flags are valid for
|
||
|
Version checking on transforms
|
||
|
3945 need a new transform validation constant:
|
||
|
itvUpgrade
|
||
|
|
||
|
98-05-29 bench Fixed bug 5310: added a new bit for the
|
||
|
Upgrade.Operator column: DetectOnly. Adding this value (32) to
|
||
|
your operator column value will cause the detection in
|
||
|
FindRelatedProducts to kick in, but will disable any
|
||
|
action taken by the PreventInstall or
|
||
|
RemoveExistingProducts actions.
|
||
|
|
||
|
98-05-28 malcolmh Fixed bug 5094: Assert when system environment
|
||
|
variable is blank.
|
||
|
|
||
|
We now zap any blank environment variable entries.
|
||
|
|
||
|
98-05-28 eugend Two bug fixes in the handler changed the UI's
|
||
|
functionality:
|
||
|
- bug # 5399: disabled Text controls were displaying
|
||
|
their text as normal text.
|
||
|
I've changed this as to display the text grayed-out.
|
||
|
- bug # 4783: the Text control wasn't able to display
|
||
|
'&', but was displaying then
|
||
|
next character underscored. I've added the NoPrefix
|
||
|
Text control style
|
||
|
(hex value = 0x20000, decimal = 131072). If present,
|
||
|
the text control displays
|
||
|
the '&' character "as is".
|
||
|
|
||
|
98-05-28 malcolmh Fixed bug 3926: MsiTran needs arguments for setting
|
||
|
flags for validation of language, product and
|
||
|
platform
|
||
|
|
||
|
|
||
|
98-05-28 malcolmh Fixed bugs:
|
||
|
|
||
|
3983: Asserts when disconnected from network
|
||
|
4538: Back command makes Darwin exit without alarm
|
||
|
messages when network connection is broken
|
||
|
|
||
|
We now always temporarily cache the MSI, whereas we
|
||
|
used to cache only when installing from removable
|
||
|
media.
|
||
|
|
||
|
98-05-28 bench Fixed bug 5515: a new property was added:
|
||
|
ReplacedInUseFiles. This property is set in the InstallExecute
|
||
|
and InstallFinalize actions whenever we install over
|
||
|
an existing file that is in-use.
|
||
|
|
||
|
98-05-28 tracyf Added a new argument to the record fields for the
|
||
|
MsiProcessMessage API, which now allows additional ticks to
|
||
|
be added to the install progress bar (by
|
||
|
CustomActions, for instance). The new argument will be
|
||
|
documented in the help file soon, but until then, here are
|
||
|
field definitions when eMessageType is specified as
|
||
|
INSTALLMESSAGE_Progress:
|
||
|
|
||
|
Field 1: Subclass - this field determines the type,
|
||
|
or subclass, of progress message being sent. The
|
||
|
content of the remaining fields is dependent on the
|
||
|
subclass type, as shown below. The allowable values in
|
||
|
field 1 are:
|
||
|
[0] - MasterReset - resets the progress bar, sets
|
||
|
the total number of expected progress ticks
|
||
|
[1] - ActionInfo - provides information related to
|
||
|
progress messages to be sent by the current action
|
||
|
[2] - ProgressReport - increments the progress bar
|
||
|
[3] - ProgressAddition - allows an action (such as a
|
||
|
CustomAction) to add ticks to the overall expected
|
||
|
progress total.
|
||
|
|
||
|
Field 2: (Dependent on subclass type, as follows):
|
||
|
[if MasterReset] - the total number of expected
|
||
|
progress ticks for the whole progress bar
|
||
|
[if ActionInfo] - the "PerTick" value: the number of
|
||
|
ticks per ActionData message for the current action,
|
||
|
if no explicit ProgressReport
|
||
|
are being sent (see field 3 below). This field is
|
||
|
ignored otherwise.
|
||
|
[if ProgressReport] - the number of ticks by which
|
||
|
the progress bar is incremented
|
||
|
[if ProgressAddition] - the number of ticks to add to
|
||
|
the overall expected progress total
|
||
|
|
||
|
Field 3: (Dependent on subclass type, as follows):
|
||
|
[if MasterReset] - the direction to fill the progress
|
||
|
bar, one of two values:
|
||
|
[0] - forward (left to right)
|
||
|
[1] - backward (right to left)
|
||
|
[if ActionInfo] - the progress "type": one of two
|
||
|
values:
|
||
|
[0] The current action will send explicit
|
||
|
ProgressReport messages
|
||
|
[1] Increment the progress bar by the "PerTick"
|
||
|
value (see Field 2) each time an ActionData message
|
||
|
is sent
|
||
|
[if ProgressReport] - Unused
|
||
|
[if ProgressAddition] -Unused
|
||
|
|
||
|
98-05-27 bench Fixed bug 5305: several upgrade actions have been
|
||
|
renamed to more closely resemble what they really do.
|
||
|
Note that the old action names will continue to be
|
||
|
supported indefinitely, but only the new names will be
|
||
|
documented. Specifically, the old and new action
|
||
|
names are:
|
||
|
|
||
|
BlockInstall --> PreventInstall
|
||
|
MigrateFeatureSettings --> MigrateFeatureStates
|
||
|
RemoveOldProducts --> RemoveExistingProducts
|
||
|
|
||
|
|
||
|
98-05-27 bench Fixed bug 5448: MsiCreateTransformSummaryInfo will not fail
|
||
|
if the ProductVersion property value is greater than 13
|
||
|
characters. We technically support any length product version,
|
||
|
as long as the first 3 fields contain 8 or fewer digits.
|
||
|
|
||
|
98-05-27 malcolmh Fixed bug 4985: We now support the log mode character
|
||
|
'*' which represents all log modes.
|
||
|
|
||
|
ex: msiexec /I foo.msi /L* log.txt
|
||
|
|
||
|
98-05-27 malcolmh Fixed bug 4517: SOURCEDIR should be a private
|
||
|
property
|
||
|
|
||
|
98-05-27 malcolmh Fixed bugs:
|
||
|
|
||
|
4441: MsiGetProductInfo should accept DD where a
|
||
|
ProductCode is required.
|
||
|
4442: MsiConfigureProduct should accept DD.
|
||
|
4443: MsiQueryProductState should accept DD.
|
||
|
|
||
|
|
||
|
98-05-27 malcolmh Fixed bug 3090: DARWIN, MsiAdvertiseProduct returns
|
||
|
error 12 if language id of package does not match the
|
||
|
system.
|
||
|
|
||
|
Behavior is now:
|
||
|
|
||
|
- If i pass a specific language:
|
||
|
- if the pkg supports that language, use it
|
||
|
- if the pkg does not support that language, fail.
|
||
|
|
||
|
- If i pass null for the language argument:
|
||
|
- use the default language for that pkg
|
||
|
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4127
|
||
|
-----------------------------
|
||
|
|
||
|
98-05-27 tracyf For bug 5395, added code to estimate the disk cost of the
|
||
|
install and rollback scripts (which can get large for an
|
||
|
install such as Office), to help prevent problems when
|
||
|
installing or uninstalling with very little disk space
|
||
|
available.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4127
|
||
|
-----------------------------
|
||
|
|
||
|
98-05-26 johndelo Component.ComponentId has now been restored to nullable,
|
||
|
in order to support removal of old versions, obsolete
|
||
|
files and reg entries, and temp files such as help indexes.
|
||
|
Components with no ID will not be registered and thus
|
||
|
cannot be used for advertising or when uninstall is needed.
|
||
|
|
||
|
98-05-26 mattwe We now invalidate the feature cache between
|
||
|
log-offs.
|
||
|
|
||
|
98-05-26 mattwe Synchronous custom actions now use the old
|
||
|
message pump to work around an OB1 bug.
|
||
|
(repro steps in #5519). We still need to
|
||
|
look at all this and get it right.
|
||
|
|
||
|
98-05-26 mattwe SCHEMA CHANGES:
|
||
|
IniFile.Directory_ has now been changed to
|
||
|
IniFile.DirProperty. Bugs #5250, #5354
|
||
|
|
||
|
Component.ComponentId is now nullable, per JohnDelo.
|
||
|
Validation fixes are in.
|
||
|
|
||
|
Class.AppId is now Class.AppId_. This is a foreign
|
||
|
key to the AppId table.
|
||
|
|
||
|
AppId table has been added, per Rob's specs.
|
||
|
Bug #5480.
|
||
|
|
||
|
This is being included in the unreleased 0.28 schema
|
||
|
changes. Full backwards compatibility to 0.27
|
||
|
|
||
|
|
||
|
98-05-26 bench Fixed bug 4451. We now support displaying an "End
|
||
|
Dialog" on success or failure in basic UI mode or
|
||
|
quiet mode. To enable this dialog, add + to the /q
|
||
|
option on the msiexec command line, or include a flag in
|
||
|
the INSTALLUI_LEVEL passed to MsiSetInternalUI. Note
|
||
|
that this dialog is not displayed when a reboot is
|
||
|
required. In quiet mode, we reboot automatically, in
|
||
|
basic UI mode, the "you need to reboot" dialog
|
||
|
replaces the end dialog.
|
||
|
|
||
|
98-05-22 t-caroln Fixed bugs 3077, 5005, and 5477 for validation.
|
||
|
|
||
|
98-05-21 chetanp bug 4792 - We now doubly refcount the key file of
|
||
|
components, if the key file exists w/o being refcounted
|
||
|
AND the icsSharedDllRefCount flag is set for the
|
||
|
component.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4121
|
||
|
-----------------------------
|
||
|
|
||
|
98-05-20 bench Fixed bug 5378: We are now more strict about
|
||
|
multiple threads using the per-process global messaging
|
||
|
object at the same time. If more than one call is made
|
||
|
to initialize the message object, the second will fail
|
||
|
with ERROR_INSTALL_ALREADY_RUNNING. For example,
|
||
|
attempting to run two installs or an install and an
|
||
|
advertisment in the same process will not be allowed,
|
||
|
with the second install/advertisement failing.
|
||
|
|
||
|
98-05-20 malcolmh Fixed bug 4998: We now cache feature detection
|
||
|
information
|
||
|
|
||
|
98-05-20 malcolmh Fixed bug 5487: Darwin now works on NT5 builds <
|
||
|
1800.
|
||
|
|
||
|
98-05-20 bench Fixed bug 5476. ForceReboot now uses the product
|
||
|
code on the command line instead of the path to the
|
||
|
source msi if possible. This will happen in the
|
||
|
ForceReboot action is after RegisterProduct and
|
||
|
PublishProduct. As a result, we will not require the source to
|
||
|
be present to access the msi if the product is
|
||
|
registered before the reboot.
|
||
|
|
||
|
98-05-20 andrewh fixed 5491: ProvideComponent repair copies too much
|
||
|
when installstate_broken: its call to
|
||
|
MsiReinstallFeature would reinstall equal files, changed the
|
||
|
offending bit from REINSTALLMODE_FILEEQUALVERSION to
|
||
|
REINSTALLMODE_FILEOLDERVERSION
|
||
|
|
||
|
98-05-20 andrewh 5359: Raised the shell version required for Darwin
|
||
|
shortcut/descriptors to be the IE4.01SP1/Win98 shell
|
||
|
(4.72.3110).
|
||
|
|
||
|
98-05-20 davidmck When we open a docfile, we now see if it's open
|
||
|
across the network and if so, tell services not to let
|
||
|
the system powerdown.
|
||
|
Services keeps a count of the number of times it's
|
||
|
been called and will clear the thread state when the
|
||
|
counter gets back to its initial state again.
|
||
|
We also tell services not to power down when we're
|
||
|
actually running an insta..
|
||
|
|
||
|
98-05-19 t-caroln fixed bug 3331 -- added ice12. Validates the
|
||
|
circular references between components and files and
|
||
|
components and registry keys. Go to http://robmen2 and
|
||
|
click on ICEMAN to test it out.
|
||
|
|
||
|
98-05-19 malcolmh Fixed bug 5293. We have changed the cached MSI location
|
||
|
and the location where we store tranforms in the user
|
||
|
profile. We now use %WINDOWS%\Installer for per-machine
|
||
|
data and {UserAppData}\Microsoft\Installer for per-user
|
||
|
data.
|
||
|
|
||
|
As a consequence of this change, we have a slight
|
||
|
modification to our transform registration scheme. This
|
||
|
change has no implications for users of Darwin. If the
|
||
|
transform that we're registering is in a shell folder
|
||
|
then we'll replace the shell folder path with
|
||
|
"*ShellFolderId*", where the '*'s are literal. This is
|
||
|
to support roaming. For example, you might see a transform
|
||
|
registered as *26*Microsoft\Installer\1_2.mst. 26 is
|
||
|
the CSIDL for the user's Application Data folder.
|
||
|
|
||
|
We also now mark both of these folders as hidden,
|
||
|
and we mark transforms and icon files read-only.
|
||
|
|
||
|
MsiZap has been updated and will zap these new locations
|
||
|
in addition to the old ones.
|
||
|
|
||
|
98-05-19 t-caroln fixed bugs 5455, 5456. Required updates of
|
||
|
_Validation table to match help file.
|
||
|
|
||
|
98-05-19 chetanp to fix bug 5227 - needed to change the Progid table
|
||
|
schema. bumped up the database schema version to .28.
|
||
|
However we still support the older database
|
||
|
versions. Also the script file version remains unchanged.
|
||
|
|
||
|
98-05-18 bench Fixed bug 5191. We now reboot automatically when
|
||
|
necessary in a quiet mode install. In addition, the
|
||
|
"Do you want to reboot now" message was changed from
|
||
|
WARNING to USER. This means this question will no
|
||
|
longer begin with "Warning 1702".
|
||
|
|
||
|
98-05-18 bench Bug 5367: "All internal errors should only have OK
|
||
|
button". Before putting up an error message, we now
|
||
|
detect if and when we don't have a template string to
|
||
|
go with the error. If we do not, we restrict the
|
||
|
buttons displayed to just <OK>.
|
||
|
|
||
|
98-05-18 t-caroln fixed bug 3897 -- trivial. Also updated testcab's
|
||
|
validation table to match schema's except for the
|
||
|
following columns where they differ: Feature.Directory_,
|
||
|
Component.KeyPath, and File.File due to the old
|
||
|
naming conventions of the cabinets.
|
||
|
|
||
|
98-05-18 eugend In the fix to bug # 3028, I've modified
|
||
|
CMsiVolumeCostList, as to enable
|
||
|
authors to set the column widths. The column width
|
||
|
information can be
|
||
|
entered into the control's Text column, right after
|
||
|
the font specifications
|
||
|
(if any). This information can be entered as a
|
||
|
succession of positive
|
||
|
integers enclosed between curly braces. A maximum
|
||
|
number of 5 width
|
||
|
specificators will be taken into consideration.
|
||
|
Empty curly braces or {0}
|
||
|
will cause the respective columns to be hidden.
|
||
|
Reading the column width
|
||
|
specifiers will stop under the following
|
||
|
circumstances:
|
||
|
- a negative integer or a string that cannot be
|
||
|
converted into a positive
|
||
|
integer has been encountered.
|
||
|
- 5 width specifiers have been read.
|
||
|
- there are no more width specifiers.
|
||
|
If less than 5 valid, non-null width specifiers are
|
||
|
present, the remaining
|
||
|
columns will be hidden.
|
||
|
|
||
|
I've also modified the default column widths as to
|
||
|
better fit the columns
|
||
|
into the given rectangle.
|
||
|
|
||
|
I've modified the VolumeCostList control in
|
||
|
TEMPLATE.MSI &
|
||
|
TESTDB.MSI's DiskCost dialog as to have width
|
||
|
specificators in its
|
||
|
Text field.
|
||
|
|
||
|
98-05-18 t-caroln fixed bug 5430 -- Error exporting binary data from a
|
||
|
table whose primary key is of type integer. Fixed
|
||
|
by adding a new method to IMsiCursor called GetMoniker
|
||
|
which handles computing the stream name. This
|
||
|
method is open for testing in the msiauto api. In
|
||
|
automation it is a read-only property of CAutoCursor called
|
||
|
Moniker. See msiauto.hlp and bug for details on use.
|
||
|
|
||
|
98-05-18 malcolmh Fixed bug 5082: Storage CopyTo error when installing
|
||
|
package with authoring error for file sizes. We now
|
||
|
give an OODS error and allow retry.
|
||
|
|
||
|
|
||
|
98-05-18 malcolmh Fixed bug 5450: MsiAdvertiseScript should return
|
||
|
error if we're doing a user assignment without
|
||
|
impersonation
|
||
|
|
||
|
|
||
|
98-05-15 t-caroln Fixed bug 5362 -- when applying transform from
|
||
|
command line return ERROR_FILE_NOT_FOUND if transform file
|
||
|
not found and the Transform application error
|
||
|
otherwise
|
||
|
|
||
|
98-05-15 bench Fixed bug 3632: "Darwin should log all failures to
|
||
|
file even if logging was not turned on". If an error
|
||
|
or warning occurs and logging is not turned on, we
|
||
|
will create a log on the fly to contain the error
|
||
|
message, and continue logging for the remainder of the
|
||
|
install. The dynamic log is created in the temp
|
||
|
directory and is called MSI*.LOG, where * is a set of random
|
||
|
alpha-numeric characters.
|
||
|
|
||
|
98-05-15 mattwe Fixed Bug 4499: The UpperCase type in _Validation now
|
||
|
works in tandem with any foreign key validation.
|
||
|
|
||
|
The Feature.Directory_ column now must be both a foreign
|
||
|
key to the Directory table, *and* UPPERCASE. (a public
|
||
|
property.)
|
||
|
|
||
|
98-05-15 malcolmh Fixed bug 5341: The "preparing to install" dialog
|
||
|
comes up with the network resource dialog even when
|
||
|
we're not installing
|
||
|
|
||
|
98-05-14 mattwe Fixed Bug 5353: Validation now does no checking on foreign
|
||
|
keys for the IniFile.Directory_ or RemoveIniFile.Directory_
|
||
|
This is to allow AppSearch to fill in properties as needed.
|
||
|
|
||
|
Fixed Bug 4824: GetSelfRelativeSD automation fixes.
|
||
|
|
||
|
98-05-14 malcolmh Fixed bug 3794: AdminInstallFinalize needs to set the
|
||
|
DISABLEMEDIA property during admin install if installing from
|
||
|
compressed source
|
||
|
|
||
|
98-05-14 malcolmh Fixed bug 3774: AdminInstallFinalize needs to set
|
||
|
the MEDIAPACKAGEPATH property during admin install
|
||
|
|
||
|
98-05-14 bench An added restriction has been made for the placement
|
||
|
of the RemoveOldProducts action. This action may be placed
|
||
|
in one of the following locations:
|
||
|
|
||
|
1) before InstallInitialize
|
||
|
2) after InstallFinalize
|
||
|
3) between InstallExecute and InstallFinalize, where no other
|
||
|
installation actions are in the same range.
|
||
|
|
||
|
98-05-14 t-caroln Fixed bug 4461. Change was minor where changed the
|
||
|
WriteLog calls to Message(imtInfo...) in the
|
||
|
ValidateTransform code.
|
||
|
|
||
|
98-05-14 bench Fixed bugs 5083 and 5084, both of which dealt with
|
||
|
backup files being left around in low disk space
|
||
|
conditions. The fix for these bugs was more general: the
|
||
|
CMsiFileCopy object will delete any files it has
|
||
|
partially installed after an error or cancellation
|
||
|
occurs. This is true for both compressed and uncompressed
|
||
|
file copy.
|
||
|
|
||
|
98-05-14 malcolmh Fixed bug 5416: AV in PublishSourceList when
|
||
|
DISABLEMEDIA=1
|
||
|
|
||
|
98-05-13 chetanp fixed bug 5318 - now we do not error if attempting
|
||
|
to remove from a non existent inifile/ folder.
|
||
|
|
||
|
98-05-13 malcolmh Fixed bug 4929: SourceList creating duplicate
|
||
|
entries
|
||
|
|
||
|
|
||
|
98-05-13 malcolmh Fixed network resource dialog bugs:
|
||
|
|
||
|
4801: Source dialog requires full path to MSI;
|
||
|
doesn't allow just path to folder
|
||
|
4932: Network Resource dialog doesn't accept a
|
||
|
directory path without a trailing backslash
|
||
|
4928: Inaccurate error message when sourcelist fails
|
||
|
to find source MSI
|
||
|
|
||
|
98-05-13 mattwe We now cached the local system SID. It looks like
|
||
|
the code intended to do this (sets a flag, saves the
|
||
|
value in a static,) but the code never actually
|
||
|
took advantage of either.
|
||
|
|
||
|
98-05-13 mattwe Bug 5374: Removed unused property "Registraton" (sic)
|
||
|
from simple, testdb, and msispy.
|
||
|
|
||
|
Fixed several other un-relnote-worthy bugs. See raid.
|
||
|
|
||
|
98-05-13 bench Fixed bug 4036: "Installation fails when TEMP
|
||
|
environment variable not found" Our logic for locating the
|
||
|
TEMP directory is hopefully final. We now do the
|
||
|
following: If %TMP% is defined, we use that directory.
|
||
|
Otherwise, if %TEMP% is defined, we use it.
|
||
|
Otherwise, on 9X we use %windows%\temp and on NT we use
|
||
|
%systemdrive%\temp. In all cases, if the directory does
|
||
|
not exist, we create it. Note that from the
|
||
|
service, we always use %windows%\msi as the temp directory.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4113
|
||
|
-----------------------------
|
||
|
|
||
|
98-05-13 chetanp Fixed bug 5398:We now support a new flag INSTALLMODE_NODETECT
|
||
|
for the dwInstallMode argument in the MsiProvideQualifiedComponent
|
||
|
and MsiProvideComponent APIs. This flag skips the component key
|
||
|
path detection logic. Hence setting this flag will cause darwin to
|
||
|
return success and the key path in scenarios where the component
|
||
|
was installed but the key path was (externally) deleted.
|
||
|
|
||
|
98-05-12 mattwe Bug #5222: "SYSTEM" account is localized to another
|
||
|
name on foreign systems. We've changed the security
|
||
|
internals to recognize this special account, and
|
||
|
look them up in a localization independent fashion.
|
||
|
this will prevent the need for localizing the
|
||
|
LockPermissions table.
|
||
|
|
||
|
Bug #5283: Command line properties must now start
|
||
|
with an alpha numeric character. This prevents
|
||
|
the command line "Prop1=Value2" from being
|
||
|
misinterpreted as a value name of "Prop1.
|
||
|
People have commonly messed this up by simply removing
|
||
|
the obsolete /o command line switch, without fixing
|
||
|
the quotes.
|
||
|
|
||
|
98-05-11 malcolmh Fixed bug 5361: Transforms: Unable to cache
|
||
|
transform if the full path is not passed on the command line
|
||
|
|
||
|
98-05-11 malcolmh Fixed bug 4249: Handler error running an .msi in UI
|
||
|
mode when no UI tables are included.
|
||
|
|
||
|
98-05-08 mattwe Bug 4811: We now retry to download cabinets from
|
||
|
the internet. Normally, if we can't find a file
|
||
|
from source media, it's considered an authoring
|
||
|
error/debug failure. However, the internet is a
|
||
|
little more flakey, and there's a chance the file
|
||
|
will re-appear.
|
||
|
|
||
|
98-05-08 mattwe Feature.Attributes now validates the exact set of
|
||
|
allowable values.
|
||
|
|
||
|
98-05-07 mattwe Bug 2802: Set validation of integers never worked.
|
||
|
We do now. Also, changed several Validators that
|
||
|
were contiguous sets (0;1;2;3) to ranges. Updated
|
||
|
ServiceControl.Event and Feature.Attributes to new
|
||
|
sets based on the newly detected failures.
|
||
|
|
||
|
98-05-07 malcolmh Fixed bugs 4735, 2301: Feature usage metrics are now
|
||
|
functional. We ACL the parent of the usage key so
|
||
|
that Everyone can write to it.
|
||
|
|
||
|
98-05-07 malcolmh Fixed bug 4042: After configure TestDB to source,
|
||
|
MsiGetComponentPath returns garbage for the component
|
||
|
with regkey as KeyPath. We now handle registration of
|
||
|
run-from-source registry keypaths correctly.
|
||
|
|
||
|
|
||
|
98-05-07 malcolmh Fixed bug 4117: Source dialog persists despite
|
||
|
hitting Cancel
|
||
|
|
||
|
|
||
|
98-05-07 malcolmh Partially fixed bug 3983: Asserts when disconnected
|
||
|
from network. We no longer assert, and we allow a
|
||
|
retry, but we still get a storage.copyTo error at the
|
||
|
end of the install.
|
||
|
|
||
|
|
||
|
98-05-07 tracyf Added the ability for the Installer to detect, if an
|
||
|
out-of-disk-space condition is encountered, whether
|
||
|
there would be enough disk space to complete the
|
||
|
install if rollback were to be disabled. If so, the
|
||
|
author now has the option to prompt the user whether to
|
||
|
continue without rollback. Alternatively, the author
|
||
|
can specify that the Installer should silently
|
||
|
disable rollback and continue, or fail with the normal
|
||
|
out-of-disk-space error. Implementation of this
|
||
|
functionality involves two new properties (OutOfNoRbDiskSpace
|
||
|
and PROMPTROLLBACKCOST), and a new control event
|
||
|
(EnableRollback). TestDB has been updated to use these
|
||
|
new elements (see the ControlEvent table), and new
|
||
|
content describing them will be added to the help file.
|
||
|
|
||
|
98-05-06 malcolmh Fixed bug 5256: Need to make
|
||
|
MsiGetComponentFromDescriptor append args. For
|
||
|
MsiProvideComponentFromDescriptor we now quote the path and append the args. The
|
||
|
argsOffset is now always set to 0.
|
||
|
|
||
|
98-05-06 malcolmh Fixed bug 5295: We need to change from using
|
||
|
HKCU\{sid}. We now use RegOpenUserClassesRoot. This should
|
||
|
have no noticable external effect.
|
||
|
|
||
|
98-05-06 malcolmh Fixed bug 5332: Need to use new SHGet API that takes
|
||
|
a user token
|
||
|
|
||
|
98-05-06 andrewh 5193: UninstallString (s) no longer have the full
|
||
|
path attached to msiexec.exe: office installs from
|
||
|
network had their uninstall strings pointing to msiexec
|
||
|
on the network [when darwin was ran from source to
|
||
|
start the install] causing uninstalls to fail unless the
|
||
|
network installpoint was available
|
||
|
|
||
|
98-05-06 bench Fixed bug 4702: "Assert in engine.cpp when service
|
||
|
is not registered. Bad errors." If you run an
|
||
|
install as a service, then with the service not registered,
|
||
|
you will now recieve a nicer error message and no
|
||
|
asserts.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4106
|
||
|
-----------------------------
|
||
|
|
||
|
98-05-05 johndelo Bugs 5040,5028 Custom action ignore return flag (+64)
|
||
|
now also ignores execution errors or failure to load,
|
||
|
but does not ignore authoring errors or crashes. When
|
||
|
this flag is set, any errors are written to the log,
|
||
|
but the execution continues as if no error occurred.
|
||
|
|
||
|
98-05-05 johndelo Bug 4706: MsiSetExternUI now remembers the old message
|
||
|
filter and context when returning the previous handler.
|
||
|
When the old handler is passed back with 0 for the filter,
|
||
|
the cached values are restored. Old handlers may not be
|
||
|
called directly via the pointer, but may be restored by
|
||
|
passing it back to either the "A" or the "W" interface.
|
||
|
|
||
|
98-05-05 bench Fixed bug 5319. The Validation type for the
|
||
|
Shortcut.Name column (specified in the _Validation table)
|
||
|
was Text. This was changed to Filename. As a result,
|
||
|
if you currently have any shortcut names that are not
|
||
|
valid Filename's (aren't SFN|LFN for example) your
|
||
|
package will fail to validate.
|
||
|
|
||
|
98-05-05 mattwe MsiInfo: will now give an error message for invalid
|
||
|
integers, rather than setting a value of 0. (code review.)
|
||
|
|
||
|
98-05-05 mattwe Bug 5172: Services -- when a service fails to respond to a
|
||
|
control event, we will automatically retry for 30 seconds.
|
||
|
This will prevent most spurious errors from misbehaving
|
||
|
services.
|
||
|
|
||
|
Bug 4940: Services rollback -- When rolling back a service
|
||
|
that has a user name, a failure to re-install will not result
|
||
|
in a user error. We cannot recover the password for the
|
||
|
service, so the rest of the rollback should continue.
|
||
|
|
||
|
98-05-04 bench Fixed bug 3851 in which transform validation of
|
||
|
product versions was broken. This should work just fine
|
||
|
now.
|
||
|
|
||
|
98-05-04 malcolmh Fixed bug 5284: Application Error when
|
||
|
MsiAdvertiseScript(0, 0, 0, 0) is called.
|
||
|
|
||
|
|
||
|
98-05-04 malcolmh Fixed bugs:
|
||
|
|
||
|
5067: DOC:ixoSourceList opcodes parameters need to
|
||
|
be updated in msiauto.hlp.
|
||
|
|
||
|
5075: DOC: ixoProduct opcodes have parameters that
|
||
|
need to be added to msiauto.hlp.
|
||
|
|
||
|
4761: MsiProvideComponent(szProductCode, szFeature,
|
||
|
unknownComponentID, 0, 0, 0) returns
|
||
|
ERROR_INSTALL_FAILURE(1603) but actually installed
|
||
|
szFeature.
|
||
|
|
||
|
MsiProvideComponent and related functions now return
|
||
|
ERROR_UNKNOWN_COMPONENT if the specified component
|
||
|
is not in the specified feature.
|
||
|
|
||
|
4127: No way to trigger a launch condition based on
|
||
|
the install type (ADMIN, ADVERTISE, vs INSTALL). The
|
||
|
ACTION property is now set to the default action.
|
||
|
|
||
|
98-05-04 bench Fixed bug 5254: Added the ProductID property (with a
|
||
|
value of "none") to the template.msi property table.
|
||
|
Since the username and company are not registered
|
||
|
by the RegisterUser action if the ProductID property
|
||
|
is not set, the workaround to register these values
|
||
|
for packages without ProductID's is to set this
|
||
|
property to "none."
|
||
|
|
||
|
98-05-01 bench Fixed bug 3483: Files fail the scopes validation
|
||
|
error because they have the wrong file version format.
|
||
|
Validation now excepts file versions of the format
|
||
|
XXXX.XXXX.XXXX.XXXX where X is a digit.
|
||
|
|
||
|
98-05-01 bench Fixed bug 2160: BindImage, UpdateResource, etc.. may
|
||
|
not update installed file when old file is in use.
|
||
|
If an existing file is in use and we install the new file
|
||
|
to a temporary location, we will bind and update resources
|
||
|
in the temporary file.
|
||
|
|
||
|
98-05-01 eugend I've added the Arial10 font into TextStyle table and
|
||
|
the new DefaultUIFont
|
||
|
property - set to Arial10 - into Property table.
|
||
|
I've also changed the functionality
|
||
|
in CMsiControl::ProcessText to use the font specified
|
||
|
by the DefaultUIFont
|
||
|
property, if present and no other font has been
|
||
|
specified for a control.
|
||
|
|
||
|
If the DefaultUIProperty is not defined, the fonts
|
||
|
will be selected as they used to be.
|
||
|
|
||
|
98-05-01 bench Fixed bug 5128: RemoveIniFile.Directory_ field
|
||
|
should allow a property to be used.
|
||
|
|
||
|
The RemoveIniFile.Directory_ value need not be a
|
||
|
foreign key to the Directory table anymore. This is
|
||
|
similar to the RemoveFile.DirProperty column. The
|
||
|
column name may be changed in a future schema version
|
||
|
update. The _Validation table was also changed to
|
||
|
reflect this (no longer a foreign key column).
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4030
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-30 bench Fixed bug 4635: Fixed. We now honor the official
|
||
|
DisableRollback policy, and ignore the old "Disable"
|
||
|
value under HKLM\SW\MSFT\Windows\CV\Installer\Rollback.
|
||
|
|
||
|
98-04-29 tracyf Support for the old "Directory_Configurable" column
|
||
|
name in the Feature table has been removed. The
|
||
|
newer "Directory_" column name is now mandatory.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4028
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-28 malcolmh Fixed bug 5241: Apps don't show in ARP. The bug was
|
||
|
in the UNICODE version of MsiEnumProducts.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4028
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-27 malcolmh Fixed bug 4760: MsiProvideQualifiedComponent should
|
||
|
return ERROR_INDEX_ABSENT on unknown qualifier.
|
||
|
|
||
|
98-04-27 malcolmh Fixed bug 4045: MsiProvideComponentFromDescriptor
|
||
|
returns 1610 with valid DD, it should return
|
||
|
ERROR_UNKNOWN_PRODUCT(1605)
|
||
|
|
||
|
98-04-27 malcolmh Fixed bug 3476: MsiQueryProductState returns
|
||
|
INSTALLSTATE_ABSENT after MsiAdvertiseProduct.
|
||
|
|
||
|
We now return 4 possible states:
|
||
|
|
||
|
-INSTALLSTATE_UNKNOWN: the product is not advertised
|
||
|
or installed
|
||
|
-INSTALLSTATE_ADVERTISED: the product is advertised
|
||
|
but not installed
|
||
|
-INSTALLSTATE_DEFAULT: the product is installed for
|
||
|
the current user
|
||
|
-INSTALLSTATE_ABSENT: the product is installed for a
|
||
|
different user
|
||
|
|
||
|
98-04-24 bench Fixed bug 5173: MsiCollectUserInfo was completely
|
||
|
broken with various asserts and even an AV on NT. The
|
||
|
code behind this API was essentially re-written to
|
||
|
register the user information in a more direct way. It
|
||
|
should be much less error-prone now.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4024
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-22 bench Fixed bug 4977/5202: MsiEnumProducts will return
|
||
|
ERROR_BAD_CONFIGURATION if a key name under
|
||
|
HKCR\Installer\Products is the wrong size. In particular, this
|
||
|
will catch product squids left over from older Darwin
|
||
|
installs.
|
||
|
|
||
|
98-04-22 mattwe 4806: specifying /l on the command now will
|
||
|
error if you don't specify a log file name.
|
||
|
|
||
|
Reviewed major chunks of services and environment
|
||
|
string handling in execute.cpp
|
||
|
|
||
|
98-04-22 bench Fixed bug 5184: MsiZap was not clearing the key
|
||
|
HKCU\Software\Classes\Installer, which exists on NT 5.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4021
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-20 bench Fixed bug 4922: Upgrade fails to remove old product
|
||
|
information. This fix may have affected nested
|
||
|
installs, especially source list and client registration.
|
||
|
|
||
|
98-04-20 malcolmh Fixed bug 5032: machine assignment fails to install
|
||
|
|
||
|
98-04-20 malcolmh Fixed bug 4262: Cannot advertise an alpha package on
|
||
|
a x86 machine. MsiOpenPackage disables platform
|
||
|
validation. MsiAdvertiseProduct disables platform
|
||
|
validation when generating an advertise script.
|
||
|
|
||
|
98-04-20 mattwe 3944: Changed validation for Verb.Verb from Identifier
|
||
|
to Text. This matches the help file.
|
||
|
|
||
|
98-04-20 chetanp bugs 5145, 3568 - changed MsiEnumComponentQualifier
|
||
|
API to return exact Qualifier and AppData buffer
|
||
|
sizes in case or ERROR_MORE_DATA. NOTE: This function has
|
||
|
changed extensively.
|
||
|
|
||
|
98-04-17 bench Fixed bug 4519: Setup to create shortcuts in the
|
||
|
common group, not personal group. The fix was to include
|
||
|
all public properties that have been added or changed
|
||
|
from their persistent values to the Properties value in
|
||
|
the InProgress key. This ensures that all the options set
|
||
|
by the user during the first half of an install are used
|
||
|
after a reboot during the second half of the install.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4017
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-17 chetanp fixed smoke test blockers - bugs 3597, 3640, 3697
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4016
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-15 mattwe 4776: Validation no longer complains repeatedly when a
|
||
|
column lacks a validation rule. It complains about
|
||
|
each column once per database, rather than once per row.
|
||
|
|
||
|
98-04-15 andrewh 5009 - Shortcuts to a path with multibyte characters
|
||
|
created wrong (TextSize->CharacterCount fix)
|
||
|
|
||
|
98-04-13 malcolmh Bug 4236: MsiServer methods no longer necessary/security
|
||
|
risk possibility
|
||
|
|
||
|
Automation changes:
|
||
|
- Server/Conman.ValidatePackage has been removed
|
||
|
- GetInProgressInstallInfo has been removed (it's now
|
||
|
an engine method that's not exposed through
|
||
|
automation)
|
||
|
- RunScript has moved from Server to Conman
|
||
|
|
||
|
98-04-13 malcolmh Bug 4237: IMsiServer interface method Reboot poses a
|
||
|
security risk
|
||
|
|
||
|
Reboot has been removed from the MsiServer
|
||
|
interface. It's now done in the Engine. If we're
|
||
|
running a managed app then we'll Reboot with
|
||
|
elevated permissions otherwise we'll reboot with
|
||
|
user permissions.
|
||
|
|
||
|
98-04-13 malcolmh Bug 4168: Transform: When launch from current dir,
|
||
|
transform causes assert without full path
|
||
|
|
||
|
We now prepend the current directory to transforms
|
||
|
that are specified via relative paths. This is
|
||
|
accomplished by passing a private CURRENTDIRECTORY property
|
||
|
from the client to the server.
|
||
|
|
||
|
98-04-13 malcolmh Bug 2275: mmode fails if cached db isn't found
|
||
|
|
||
|
We now go to the source to get a new cached
|
||
|
database if the cached one is missing.
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4009
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-09 johndelo Bug 5007: obsolete defines in msiquery.h, MSIMESSAGE_*
|
||
|
have been removed. Use INSTALLMESSAGE_* defines instead.
|
||
|
|
||
|
98-04-09 bench Bug 5012: we now use the full UNC path of msiexec in
|
||
|
the RunOnce key written by the ForceReboot action.
|
||
|
This was effecting the Office install where they run
|
||
|
Darwin from a network share and only install Darwin
|
||
|
after the reboot. If the connection was not restored
|
||
|
after reboot, the installation could not continue.
|
||
|
|
||
|
98-04-09 bench Bug 3676: we now continue logging after a reboot
|
||
|
caused by the ForceReboot action.
|
||
|
|
||
|
98-04-08 malcolmh Fixed bugs:
|
||
|
|
||
|
5011: We should use HKCU instead of HKU\SID
|
||
|
5006: ODBC failure when called from MSI service
|
||
|
|
||
|
Custom actions can now use HKCU directly instead
|
||
|
of using HKU\SID.
|
||
|
|
||
|
98-04-08 tracyf Fixed bug 4966. Fixing this required that the
|
||
|
Condition be processed BEFORE the installed states of
|
||
|
features and components are determined (see the bug
|
||
|
resolution for details). Thus, expressions in the
|
||
|
Condition table can no longer include references to the
|
||
|
installed states of features or components (even before
|
||
|
this fix, references to installed states won't work in
|
||
|
some instances anyway, for reasons related to the
|
||
|
bug). The docs will be updated to call out this
|
||
|
restriction.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4008
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-07 bench Bug 4979. To help alleviate some of our timeout
|
||
|
problems but also allow us to track down these issues
|
||
|
easily, the following changes have been made:
|
||
|
|
||
|
1) the default timeout has increased from 20 to 60 seconds
|
||
|
2) a new policy value has been introduced to set the timeout value.
|
||
|
this value is "Timeout" (DWORD) under
|
||
|
|
||
|
HKLM\Software\Policies\Microsoft\Windows\Installer
|
||
|
|
||
|
and is the number of seconds that the "worker" thread can go
|
||
|
without pinging the UI before the "Installer not responding"
|
||
|
dialog is displayed.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4007
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-07 bench Bug 4961: add Admin install capability to MsiSpy.
|
||
|
To facilitate this, all files (for both platforms) are
|
||
|
now copied to each image on \\united\darwin and
|
||
|
\\united\darrel.
|
||
|
|
||
|
98-04-06 mattwe Fixed part of 4944. Removed /o references from
|
||
|
command line help. TESTING! This is your second
|
||
|
relnotes note to remove /o from your tests.
|
||
|
The next build released will have debug asserts
|
||
|
enforcing this, and the next will have all support
|
||
|
for /o removed.
|
||
|
|
||
|
98-04-06 malcolmh Bumped script version due to bug 4962 changes.
|
||
|
|
||
|
98-04-06 malcolmh Fixed bug:
|
||
|
|
||
|
4962: Need to update ARP properties and values
|
||
|
|
||
|
Changed name:
|
||
|
PWNOMODIFY -> ARPNOMODIFY
|
||
|
PWNOREMOVE -> ARPNOREMOVE
|
||
|
SupportURL -> ARPHELPLINK
|
||
|
SupportPhone -> ARPHELPTELEPHONE
|
||
|
|
||
|
Added:
|
||
|
ARPAUTHORIZEDCDFPREFIX
|
||
|
ARPCOMMENTS
|
||
|
ARPCONTACT
|
||
|
ARPINSTALLLOCATION
|
||
|
ARPNOREPAIR
|
||
|
ARPREADME
|
||
|
ARPSIZE
|
||
|
ARPSYSTEMCOMPONENT
|
||
|
ARPURLINFOABOUT
|
||
|
ARPURLUPDATEINFO
|
||
|
|
||
|
The code now matches the registry spec.
|
||
|
|
||
|
98-04-06 mattwe Added IMPFAOW to latebind.h You can now use the IMPFAIL
|
||
|
semantic for AORW imports. Also modified WININET and
|
||
|
URLMON to be completely optional. (This wasn't quite
|
||
|
working before.)
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4006
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-06 bench added a third public header: msidefs.h. This
|
||
|
purpose of this file is to provide common data definitions
|
||
|
to custom actions and authoring environments (users
|
||
|
of msiquery.h). Currently this file contains the
|
||
|
definitions for all exposed properties and the various
|
||
|
values each integer column may contain. This file has
|
||
|
been dropped to the COMMON folder along with msi.h
|
||
|
and msiquery.h.
|
||
|
|
||
|
98-04-06 mattwe 4951. We now no longer attempt to set security on
|
||
|
backup file directories on REMOTE volumes. This
|
||
|
never worked, so the fix simply prevents the install
|
||
|
from failing.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4003
|
||
|
-----------------------------
|
||
|
|
||
|
98-04-03 tracyf For bug 2985, Darwin error codes and messages have
|
||
|
been totally revamped. Most messages that were
|
||
|
previously ship messages (i.e. appear in the Error table
|
||
|
and thus require localization) have been changed to
|
||
|
debug-only. Only those messages that present
|
||
|
understandable information to the average user have
|
||
|
remained as ship messages. In doing this, we've reduced
|
||
|
the number of messages in the Error table from 356 to 68.
|
||
|
|
||
|
98-04-03 mattwe 2823: New and improved command line parsing.
|
||
|
|
||
|
TESTING/DOCUMENTATION: all references to the /o
|
||
|
command line option should go away. The new method
|
||
|
is to specify PROPERTY=VALUE at any point in the
|
||
|
command line. To include spaces, use:
|
||
|
PROPERTY="VALUE VALUE". For including a quote
|
||
|
within a quoted string, use two quotes:
|
||
|
PROPERTY="QUOTE "" QUOTE". In a non-quoted string,
|
||
|
do not double quote. PROPERTY=QUOTE"QUOTE.
|
||
|
|
||
|
The /o flag has been left in place for the time
|
||
|
being to allow for backwards compatibility,
|
||
|
but will slowly go away. See here or SETUPSUP
|
||
|
for more details.
|
||
|
|
||
|
98-04-03 malcolmh Removed unused Regkey.RemoveSubKey method.
|
||
|
|
||
|
98-04-02 malcolmh Partial fix for bug:
|
||
|
|
||
|
2985: WORK ITEM: Fix error codes
|
||
|
|
||
|
The error codes in database.h, iconfig.h, regkey.h,
|
||
|
and services.h have changed.
|
||
|
|
||
|
98-04-02 malcolmh We now set the Timestamp field in the script header.
|
||
|
The time stamp is an integer value whose high-order
|
||
|
word is the DOS date, and low-order word is the DO
|
||
|
time.
|
||
|
|
||
|
98-04-02 malcolmh Fixed bug:
|
||
|
|
||
|
2126: Work item: Remove ProgMan support
|
||
|
|
||
|
This includes some opcodes, some services methods,
|
||
|
and some actions.
|
||
|
|
||
|
98-04-02 chetanp we now always shared dll refcount all files that go
|
||
|
to the system folder and doubly refcount any files
|
||
|
that exist in the system folder w/o a shared dll
|
||
|
refcount.
|
||
|
|
||
|
98-04-01 johndelo Changed GUID compression for registry data - Bug 4343
|
||
|
GUIDS now are stripped of punctuation and the bytes
|
||
|
are reordered low-to-high order for best performance.
|
||
|
GUIDS packed into MSI descriptors have not changed.
|
||
|
PackGUID and UnPackGUID functions in RunScript.exe
|
||
|
(as well as internal functions) now accept an enum
|
||
|
to designate the compression to use:
|
||
|
ipgFull = 0 - no compression, simply copies GUID
|
||
|
ipgPacked = 1 - reordered hex digits only, len=32
|
||
|
ipgCompressed = 2 - re-encoded text, len=20
|
||
|
Packed is used for reg data, Compressed for descriptors.
|
||
|
All MSI apps should be uninstalled before using this
|
||
|
build, to avoid leaving obsolete info in registry.
|
||
|
ShowMsi.vbs and RunScrpt.exe have been updated.
|
||
|
|
||
|
98-04-01 malcolmh Fixed bug:
|
||
|
|
||
|
4011: Msiexec /a should be remapped to mean "admin"
|
||
|
|
||
|
*** CHANGE TO MSIEXEC COMMAND-LINE FLAGS ***
|
||
|
- Admin installs (formerly /N) now use /A
|
||
|
- Advertising (formerly /A) now uses /J
|
||
|
|
||
|
98-04-01 malcolmh Fixed bugs: (NT5 app deployment)
|
||
|
|
||
|
4906: Forced uninstall of apps fails
|
||
|
4894: App Publishment installs into wrong user profile
|
||
|
|
||
|
98-04-01 bench The LanguageId property has been replaced by the
|
||
|
UserLanguageID and SystemLanguageID properties.
|
||
|
|
||
|
98-04-01 bench Replaced the VersionEngine and VersionServices
|
||
|
properties with a single VersionMsi property.
|
||
|
|
||
|
98-04-01 mattwe bug 4701, 4897 - Internet optimization of file://
|
||
|
protocol. Instead of caching the database now,
|
||
|
we use the standard practice of stripping the file://
|
||
|
part, and using the resultant path. WININET does
|
||
|
this in one of its APIs.
|
||
|
|
||
|
Also, we now handle the variety of forward/backslashes
|
||
|
that you should be familiar with in the shell.
|
||
|
|
||
|
98-04-01 chetanp bug 4830 - we now support "short uninstall". We now
|
||
|
have 2 separate flags for MsiAdvertiseScript -
|
||
|
SCRIPTFLAGS_REGDATA_APPINFO for application registry data
|
||
|
(OLE goop) and SCRIPTFLAGS_REGDATA_CNFGINFO for darwin
|
||
|
cnfg. data. The SCRIPTFLAGS enums have changed.
|
||
|
However we will be binary and source level compatible
|
||
|
with the older values for some time.
|
||
|
|
||
|
98-04-01 chetanp bug 4473 - we now place the SYSTEM ACL on the
|
||
|
published product key if we are called inproc
|
||
|
(MsiAdvertiseProduct) by the LocalSystem (by a service) or if we
|
||
|
are running as a service and we are called to
|
||
|
advertise a product by an admin.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.4001
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-31 tracyf In response to bug 4881, the REINSTALLMODE_REPAIR
|
||
|
bit (an argument to the MsiReinstallProduct and
|
||
|
MsiReinstallFeature API's) is now obsolete and is ignored.
|
||
|
The same goes for the 'r' option used on the command
|
||
|
line, and in the REINSTALLMODE property. The
|
||
|
reinstall options are now determined solely by the other
|
||
|
reinstall bits.
|
||
|
|
||
|
98-03-31 mattwe Bug #4898: Fixed FormatText for embedded nulls.
|
||
|
In a string to be formatted "foo[~]" the string
|
||
|
length should be 4, not 3, and includes two nulls
|
||
|
at the end. This should be the rebuild of 3931.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3931
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-30 johndelo Updated GUIDS in TestDb, to vary the low order word.
|
||
|
Uninstall TestDb before using this build, unless you
|
||
|
want to test the component thrashing mechanism.
|
||
|
|
||
|
98-03-30 johndelo Support for actions run at successful execution termination
|
||
|
(commit). Custom action flag icaCommit added to permit
|
||
|
a custom action to execute on success, similar to rollback.
|
||
|
|
||
|
98-03-30 malcolmh Fixed bug:
|
||
|
|
||
|
4488: Nested Install in Testdb doesn't work on
|
||
|
NT4.0.
|
||
|
|
||
|
I didn't fix the original cause of this bug, but I
|
||
|
fixed the most recent cause which was an
|
||
|
impersonation problem. I changed our impersonation count to be
|
||
|
per-thread instead of per-process.
|
||
|
|
||
|
98-03-30 mattwe 4245: Validation skipping sequence tables.
|
||
|
We now validate all 6 sequencing tables, and have added
|
||
|
two new command line flags for the second option.
|
||
|
-seq validates only the sequence table
|
||
|
-seqall validates only the sequence tables, but does
|
||
|
not end after an error. The final result is not
|
||
|
reliable. However, you get to see all the errors in
|
||
|
one run.
|
||
|
|
||
|
I've also added _InstallValidate records for several
|
||
|
new actions added since sequencing was turned off,
|
||
|
and slightly tweaked the _Sequence table for
|
||
|
optional bits on RegisterMIME and RegisterExtensionInfo
|
||
|
|
||
|
98-03-30 bench Fixed bugs:
|
||
|
|
||
|
4212: No indicator Rollback is running.
|
||
|
4313: While resume installing is in progress,please let
|
||
|
the user know.
|
||
|
4469: Second install runs in no UI mode after rolling back
|
||
|
another product install.
|
||
|
|
||
|
All bugs dealt with the UI that is used during rollback and
|
||
|
rollback cleanup. Prior to this change, all progress for
|
||
|
rollback or cleanup was done using the basic UI. With recent
|
||
|
changes to our execution model (seperate UI thread, generating
|
||
|
script on server side) this stopped working. The problem was
|
||
|
that a UI interface was being created within the service for use
|
||
|
by the rollback processing, but the interface must be created on
|
||
|
the client side to operate correctly.
|
||
|
|
||
|
The fix is to use whatever UI the client side is currently using.
|
||
|
This wasn't done before because if the full UI was being used, it
|
||
|
may have had a cancel button or may not have had a progress bar.
|
||
|
These problems have been overcome by disabling the cancel button
|
||
|
on the full UI (we know which control is the cancel control because
|
||
|
the author specifies this) and we just assume that the dialog will
|
||
|
have a progress bar on it. Thus, if you are using full UI and
|
||
|
either need to rollback a suspended install or need to rollback the
|
||
|
current install, the full UI will be used to display the rollback
|
||
|
progress. This is a change from previous behaviour.
|
||
|
|
||
|
98-03-30 tracyf Added the internal-only MsiRegisterSysHandle,
|
||
|
MsiCloseSysHandle, and MsiCloseAllSysHandles functions.
|
||
|
These routines allow Darwin to clean up open system
|
||
|
handles (file handles, mutex handles, etc) in case of a
|
||
|
fatal error (out of memory, etc). Any handles that
|
||
|
are currently closed using WIN::CloseHandle should use
|
||
|
these routines instead.
|
||
|
|
||
|
98-03-27 malcolmh Fixed bug:
|
||
|
|
||
|
4294: LastUsedSource entries don't match spec
|
||
|
|
||
|
The LastUsed* values are now combined into one
|
||
|
value.
|
||
|
|
||
|
98-03-27 malcolmh Fixed bugs:
|
||
|
|
||
|
3799: Make sure all environment variables are
|
||
|
expanded in the context of the user
|
||
|
3987: Transform: Uninstall cannot apply transform
|
||
|
from local cache
|
||
|
4873: Assert in latebind.h when running on Windows 95
|
||
|
in CoSetProxyBlanket
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3927
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-26 chetanp bug 4826 - added the Extension.MIME_ column for the
|
||
|
Content Type associated with the Extension. This
|
||
|
allow us to have multiple Extensions point to the same
|
||
|
Content Type (previously this was not possible due to
|
||
|
the fact that we were gathering this association from
|
||
|
the MIME table)
|
||
|
|
||
|
98-03-26 chetanp bumped up script version to 16 due to changes in
|
||
|
the Extension registration opcodes
|
||
|
|
||
|
98-03-26 chetanp the Extension registration opcodes now take the associated
|
||
|
ContenType
|
||
|
|
||
|
98-03-26 mattwe !! DATABASE VERSION 0.27 !! Backwards compatible with 0.26
|
||
|
|
||
|
98-03-26 chetanp bug 4847 - disable timeouts for type library
|
||
|
registrations/ unregistrations
|
||
|
|
||
|
98-03-26 chetanp moved the SetODBCFolders action to after
|
||
|
CostFinalize since it uses the Component.Action column (created
|
||
|
only in CostInitialize) and the SetTargetPath
|
||
|
function of the directory manager
|
||
|
|
||
|
98-03-26 mattwe Added Class.RemoteName column. This is used for remote DCOM
|
||
|
servers. Validation suggestion: This is only valid for classes
|
||
|
whose context is RemoteServer32
|
||
|
|
||
|
98-03-26 mattwe Bug 4511: Added conditionalization for components for Class,
|
||
|
CreateFolder, Extension, PublishComponent, Typelib, Shortcut.
|
||
|
This affects schema and testdb. t-robmen is changing Spy.
|
||
|
|
||
|
98-03-26 mattwe Changed localiztion bits to NO-LOCALIZATION for Class.Argument
|
||
|
and Shortcut.Argument
|
||
|
|
||
|
98-03-26 davidmck Added code to services object to
|
||
|
SetErrorMode(SEM_FAILCRITICALERROS) and debug code to check in places
|
||
|
where we used to set it that it is correctly set.
|
||
|
We clear it before starting Services and before
|
||
|
starting a process to self-reg.
|
||
|
|
||
|
98-03-25 bench Fixed bugs:
|
||
|
|
||
|
3389: file properties are inconsistent and/or need to be updated
|
||
|
|
||
|
properties now consistent among shipping files and include
|
||
|
new name "Windows installer"
|
||
|
|
||
|
4384: In Basic UI window caption, Installer needs to have an
|
||
|
uppercase first character
|
||
|
|
||
|
Basic UI caption changed to just "Windows" and default text
|
||
|
in basic UI changed to "Please wait while Windows configures
|
||
|
[ProductName]."
|
||
|
|
||
|
98-03-25 malcolmh Fixed bugs:
|
||
|
|
||
|
4636: (NT5) Assignment not working for apps that has
|
||
|
shortcuts in a submenu under Programs
|
||
|
4474: (NT5) Assert in execute.cpp uninstalling
|
||
|
published/assigned app
|
||
|
4551: (NT5) Forced uninstall at winlogon when non admin
|
||
|
fails
|
||
|
4436: Sourcelist - Cannot install on demand from
|
||
|
browsed source (floppy)
|
||
|
4513: Feature Request: Need to implement
|
||
|
MsiQueryFeatureStateFromDescriptor
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3924
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-23 malcolmh Added 'N' option to msizap to allow Uninstall key to
|
||
|
be processed independent of other keys.
|
||
|
|
||
|
98-03-23 malcolmh Fixed bugs:
|
||
|
|
||
|
4832: Blank media label is allowed even when
|
||
|
multiple media tables entries are present
|
||
|
4763: Assert in Coreactn.cpp file installing Testcab
|
||
|
from floppy disks.
|
||
|
|
||
|
98-03-23 andrewh bug 4793: "Darwin 3727 does not evaluate the IE40
|
||
|
NT50 condition in
|
||
|
the InstallSequence table correctly", added an
|
||
|
internal action
|
||
|
"ResolveSource" to ensure SOURCEDIR is set which was
|
||
|
the
|
||
|
real problem, not the condition evalution
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3920
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-20 chetanp bug 4690: We now do not publish a Darwin Descriptor
|
||
|
if the corr. component is disabled (at advt time).
|
||
|
|
||
|
98-03-20 bench Bug 4789: InstMsi and CopyMsi no longer register
|
||
|
Darwin as an OLE server on Win9X. This is accomplished
|
||
|
by calling msiexec -d (which just registers the shell
|
||
|
verbs) instead of msiexec -regserver on that
|
||
|
plaform. Having Darwin act as an OLE server on Win9X is
|
||
|
unecessary and only degrades performance.
|
||
|
|
||
|
98-03-19 chetanp fixed bug 3606. We now use short file names for all
|
||
|
ole class server registration and always enquote our
|
||
|
extension servers
|
||
|
|
||
|
98-03-19 johndelo In quiet UI mode, the default response for the timeout
|
||
|
dialog ("Installer is not responding"), will be "Retry"
|
||
|
for the first 10 timeouts, after which it will be "Cancel".
|
||
|
Timeout has been disabled around the database copy op,
|
||
|
which was known to occasionally timeout.
|
||
|
|
||
|
98-03-19 johndelo Custom action type 34 has been changed (CustomAc.doc).
|
||
|
Target column for this EXE mode ONLY must contain the
|
||
|
complete path to the EXE along with the command arguments.
|
||
|
Properties may be embedded in the string, but it the
|
||
|
author's responsibility to quote the EXE path if needed.
|
||
|
Errors are not produced if the EXE cannot be created,
|
||
|
of if it returns non-zero and the return is not disabled.
|
||
|
|
||
|
98-03-19 tracyf Fixed bug 4491. To fix this one, I needed to add a new
|
||
|
"SpawnWaitDialog" control event. This event pops up the
|
||
|
dialog specified in the "Argument" column of the ControlEvent
|
||
|
table if the specified Condition is FALSE, and keeps the
|
||
|
dialog up for as long as the condition remains FALSE.
|
||
|
As soon as the condition evaluates to TRUE, the dialog
|
||
|
is automatically removed. For bug 4491, this is used
|
||
|
to pop up a "Please wait..." dialog if the user clicks
|
||
|
the "Install Now" button (or the "Next" or "Disk Cost"
|
||
|
buttons on the Selection dialog) before background
|
||
|
costing is complete.
|
||
|
|
||
|
Along with the new ControlEvent, a new property has also
|
||
|
been defined: "CostingComplete". Thus, the conditional
|
||
|
statement for the SpawnWaitDialog would be "CostingComplete
|
||
|
= 1".
|
||
|
|
||
|
The dialog specified for SpawnWaitDialog should have
|
||
|
only one active Control on it - a "Cancel" button. You'll
|
||
|
need to add an "ExitDialog" control event tied to this button,
|
||
|
with an argument of "Exit". This will allow your "Wait"
|
||
|
dialog to be cancelled without triggering any other event
|
||
|
tied to the button that spawned your "Wait" dialog.
|
||
|
|
||
|
See the Dialog, Control, and ControlEvent
|
||
|
tables of the latest TestDB.msi for an example.
|
||
|
|
||
|
98-03-19 bench Added the UserSID property, which is the string
|
||
|
representation of the user's security id. Only set on
|
||
|
NT. This property is useful for custom actions that
|
||
|
need to access registry keys under HKEY_CURRENT_USER.
|
||
|
When a custom action is executed in the installation
|
||
|
service, it may not access HKEY_CURRENT_USER
|
||
|
directly. Instead, it must open a key beneath HKEY_USERS.
|
||
|
The value of this property is the name of the key
|
||
|
under HKEY_USERS which may be used in place of
|
||
|
HKEY_CURRENT_USER.
|
||
|
|
||
|
98-03-19 tracyf Fixed bug 4491 - The DestName column of the MoveFile
|
||
|
table now supports short|long filename syntax.
|
||
|
|
||
|
98-03-19 chetanp bug 4745: Registry.Value column is now L0 inplace of
|
||
|
L255
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3917
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-16 johndelo Fixed bugs 4169,4569, many transform-related bugs.
|
||
|
Transforms now can be applied multiply to databases
|
||
|
opened read-only or read-write, with tables unloaded,
|
||
|
loaded, saved, or previous transformed. The format of
|
||
|
transforms files HAS BEEN CHANGED in order to fix the
|
||
|
many bugs, and now represents data in the same format
|
||
|
as the databae files (with considerable space saving).
|
||
|
Also the CLSID of the storage is now validated when
|
||
|
applying transforms and the previous format is rejected.
|
||
|
MsiTran.exe view transform mode temporarily supports
|
||
|
both the old and the new transform file format.
|
||
|
An extensive transform test checked in: TestTran.vbs
|
||
|
The API automation function GenerateTransform now
|
||
|
works in the database compare mode (no transform file),
|
||
|
returns a boolean indicating whether differences found.
|
||
|
|
||
|
98-03-16 malcolmh Fixed bug 4039: Darwin shows an unexpected
|
||
|
termination dialog when user error is on the screen.
|
||
|
|
||
|
1) Removed imtActionDone message.
|
||
|
2) Added log mode character 'f' to represent 'files
|
||
|
in use'. Log mode 'd' is now obsolete
|
||
|
3) Added imtResolveSource message
|
||
|
4) We now put up the source resolution dialog on the
|
||
|
client side, via the imtResolveSource message
|
||
|
5) We will now pass messages on to the Basic UI if
|
||
|
the handler returns imsNone
|
||
|
6) Changed imtCommonData's value
|
||
|
|
||
|
|
||
|
98-03-16 bench Renamed Version95 property to Version9X. We will
|
||
|
continue to set the Version95 property, but the
|
||
|
Version9X will be the only documented property.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3913
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-12 chetanp fixed bug 4554 - nullable shellnew value now
|
||
|
supported
|
||
|
|
||
|
98-03-12 chetanp ffixed bugs 4597, 4662 - MsiAdvertiseScript with
|
||
|
fRemoveItems set to true now no longer creates a
|
||
|
separate "reverse" script. We now execute the same script
|
||
|
with a new special "reverse advt" flag. Affects the
|
||
|
MsiAdvertiseScript function and the advertise
|
||
|
operations.
|
||
|
|
||
|
98-03-12 davidmck Removed the SetCDInfo action from the code since it
|
||
|
didn't work and wasn't used.
|
||
|
|
||
|
98-03-12 tracyf Added several optimizations to costing: during
|
||
|
reinstall, costing is no longer performed for any activity
|
||
|
not involved in the reinstall (i.e. no file costing
|
||
|
is done when only re-registration is being
|
||
|
performed). We also now cost only those components actively
|
||
|
being modified (this is especially significant when
|
||
|
installing or reinstalling a small number of
|
||
|
features/components)
|
||
|
|
||
|
98-03-12 mattwe Bugs 4694, 4695: We now handle bogus slashes in
|
||
|
URLs by calling InternetCanonicalizeUrl.
|
||
|
IE handles URLs of the form http:\\ or http://,
|
||
|
and while backslashes are technically illegal,
|
||
|
they handle them. For Darwin, I could reject them,
|
||
|
but recognizing them is harder than calling an API
|
||
|
to fix them.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3910
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-09 chetanp bug 4113, 4390 : we now skip the source resolution in
|
||
|
the component installed states determination and
|
||
|
component management logic. Made changes to the
|
||
|
GetComponentPAth fn in msinst.cpp and the class and
|
||
|
extension processing code (which was also previously
|
||
|
forcing source resolution during uninstall).
|
||
|
|
||
|
98-03-09 chetanp completed mreged nested installs support -
|
||
|
|
||
|
we impose the following restrictions on merged
|
||
|
|
||
|
nested installs -
|
||
|
1. a component can occur atmost once in the same
|
||
|
install (no sharing of components between products in a
|
||
|
single install).
|
||
|
2. no component in an install can be such that it
|
||
|
requires to thrash any other component in the same
|
||
|
install.
|
||
|
3. a product can occur at most once in the same
|
||
|
install. (no P1 has P2 and P3, and P2 has P3 as well,
|
||
|
kindof scenarios).
|
||
|
4. a product can install selective features of a
|
||
|
nested product. However during uninstall it has to invoke
|
||
|
the nested product with "REMOVE=ALL". This is needed
|
||
|
because we do not keep the clients of a product on a
|
||
|
per feature basis, but instead on the entire product
|
||
|
and the product needs to go away when the last
|
||
|
client wishes to do so (no feature of a child product can
|
||
|
be removed if there are more than one clients of the
|
||
|
product).
|
||
|
5. a child install will not appear in the add/remove
|
||
|
control panel list of products unless it has also
|
||
|
been installedstand-alone.
|
||
|
|
||
|
98-03-09 chetanp bumped up the script version to 15 due to addition of new
|
||
|
opcodes (see below) and change in ixoProductRegister/
|
||
|
ixoProductUnregister and ixoProductPublish/ ixoProductUnpublish.
|
||
|
|
||
|
98-03-09 chetanp added ixoProductPublishClient/ ixoProductUnpublishClient
|
||
|
opcodes to manage the clients for a product.
|
||
|
|
||
|
98-03-09 chetanp added ixoProductCPDisplayInfoRegister/
|
||
|
ixoProductCPDisplayInfoUnregister opcodes that control whether a
|
||
|
product appears in the add/remove control panel. These
|
||
|
opcodes are used only if the product is being
|
||
|
installed w/o a parent.
|
||
|
|
||
|
98-03-09 eugend I've fixed bugs # 3262, 2925, 2190 & 2939.
|
||
|
|
||
|
98-03-09 mattwe 4546: According to Malcolm, RemoveFile.FileName really should
|
||
|
be nullable. We changed this from nullable, to non-nullable during
|
||
|
a recent Scopes prompted schema clean-up...
|
||
|
|
||
|
4318: Modified InstallExecute sequencing for InstallServices
|
||
|
to be NT only. (Added Condition VersionNT)
|
||
|
|
||
|
4386: ServiceControl.Arguments validated as KeyFormatted. Already
|
||
|
coded that way. Still open, assigned to Doc.
|
||
|
|
||
|
4326: Removed a redundant InternetGoOnline in msiutil, and changed
|
||
|
the function to recognize URLs for cabinets in execute.
|
||
|
|
||
|
98-03-06 mattwe Bug 4470: In our rollback generation for services, we read the
|
||
|
value of service dependencies incorrectly, and corrupted the data.
|
||
|
On writing the rollback, the service couldn't be restarted, and
|
||
|
rollback would abort. The value should be value<null>value<null><null>
|
||
|
(double null terminated.)
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3906
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-05 bench Fixed bug 4332, which required significant changes to our
|
||
|
PID handling:
|
||
|
|
||
|
1) the PIDTemplate property is no longer unset after PID validation
|
||
|
2) the PRODUCTID property has been renamed to PIDKEY. This property
|
||
|
is no longer set to the full PID after validation
|
||
|
3) a new property, ProductID, is set to the full PID after validation.
|
||
|
If this property is not set, PID validation has not occurred.
|
||
|
4) PID validation is no longer performed implicitely in the CostInitialize
|
||
|
and RegisterUser actions. Rather it is performed in a new action -
|
||
|
ValidateProductID. This action should be sequenced both before the
|
||
|
UI wizard in InstallUISequence and before RegisterUser in
|
||
|
InstallExecuteSequence.
|
||
|
|
||
|
98-03-05 malcolmh Fixed bugs:
|
||
|
|
||
|
4207: Need to define which error msg's should
|
||
|
quietly be returned to the API caller
|
||
|
2493: Error opening installation log file in TEMP
|
||
|
directory, when TEMP directory is missing
|
||
|
4456: Handling multiple Help / Detect and Repair
|
||
|
|
||
|
98-03-05 bench Fixed bug 3379, allowing Validation to succeed even
|
||
|
if the _Validation tables references tables that
|
||
|
don't exist in the package. This will allow a package
|
||
|
with only a few tables to use the _Validation table as
|
||
|
is from schema.msi. As a result of this fix,
|
||
|
simple.msi and minimum.msi now use the _Validation table
|
||
|
from schema.msi.
|
||
|
|
||
|
98-03-05 eugend IMsiHandler::Terminate(bool fFatalExit) implemented
|
||
|
- it destroys all dialogs and
|
||
|
all bitmaps, icons, fonts and imagelists created in
|
||
|
the handler should a fatal error
|
||
|
occur. I've also modified the way
|
||
|
IMsiHandler::Terminate() is called in
|
||
|
MsiUIMessageContext::Terminate() (in
|
||
|
ENGINE\ACTION.CPP file).
|
||
|
|
||
|
98-03-04 davidmck Moved the flags for debug memory actions from the
|
||
|
DEBUGMEM environment variable to the _MSI_TEST
|
||
|
environment variable.
|
||
|
Currently implemented flags are:
|
||
|
A - check memory on alloc
|
||
|
F - check memory on free
|
||
|
I - no memory preflight init
|
||
|
K - keep memory allocations
|
||
|
M - log memory allocations
|
||
|
|
||
|
|
||
|
98-03-04 malcolmh Fixed bug 4477: Msi with extended use of conditional
|
||
|
components crashes Darwin.
|
||
|
|
||
|
98-03-04 malcolmh Added 'U' option to msizap. This allows removal of
|
||
|
only the %USERPROFILE%\MSI folder.
|
||
|
|
||
|
98-03-04 malcolmh Fixed bug 4462: Win95 API automation functions fail
|
||
|
if services not initialized. DEV: Changed g_fWindows,
|
||
|
g_fWin95 to g_fWin9X
|
||
|
|
||
|
98-03-03 bench This restriction has been in place for a while (ever
|
||
|
since script generation was performed on server
|
||
|
side) but I don't think it has been explicitely stated.
|
||
|
All Directory marked as "configurable" in the Feature
|
||
|
table must have names in ALL CAPS. This is required
|
||
|
so that if these folders are changed through the UI
|
||
|
on the client side, the new values may be passed
|
||
|
across to the server side as public properties. I have
|
||
|
fixed TestDb to conform to this restriction.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3903
|
||
|
-----------------------------
|
||
|
|
||
|
98-03-02 mattwe Bugs:
|
||
|
3776 Inconsistent nullable flags was causing build
|
||
|
failures in Office now that Scopes is checking.
|
||
|
There was another dupe on this topic.
|
||
|
4339 Service being started multiple times.
|
||
|
After a bunch o' checking, it turns out that really
|
||
|
all that was happening is that we had the message
|
||
|
issuing from inside a wait loop. That's cleaned up
|
||
|
and now you'll only get one message per start.
|
||
|
4430 Vital Services flag.
|
||
|
I chose 0x8000 0000 as a flag in the ServiceInstall
|
||
|
table to mark a service as vital. This overlaps
|
||
|
with the Bad Integer value, so that's been changed
|
||
|
to 0x8000 instead. I've checked with the only
|
||
|
client, and cleared it past them not to bump the
|
||
|
DB version.
|
||
|
4432 Exposed automation for GetSelfRelativeSD for testing.
|
||
|
|
||
|
98-03-02 malcolmh Fixed bugs 3547 (Remove 'run script' option /~ from
|
||
|
msiexec) and 4434 (CoInitialize before doing
|
||
|
selfreg/unreg).
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3827
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-26 chetanp The REsource table schema has changed. The key is
|
||
|
now made up of the File_, ResType and ResId columns
|
||
|
|
||
|
98-02-26 eugend Fixed Rich Edit related bugs # 4086 & 2854,
|
||
|
international lang. bugs # 3892,
|
||
|
2945, 3447, 4400 and bug # 4303 - I've modified
|
||
|
CONTROLS.CPP in order
|
||
|
to fix the last 5 ones.
|
||
|
|
||
|
98-02-25 bench Added new syntax for Directory.DefaultDir column:
|
||
|
|
||
|
[targetname]:[sourcename]
|
||
|
|
||
|
If the value contains a ':', the string before the ':' is
|
||
|
used during target path directory resolution and the string
|
||
|
after the ':' is used during source path resolution (or target
|
||
|
path resolution during admin installs).
|
||
|
|
||
|
This is useful for specifying different source and target folder
|
||
|
names. Also, in addition with the '.' syntax, this can be used
|
||
|
to add levels to either the source or target paths for a single
|
||
|
directory. For example:
|
||
|
|
||
|
TARGETDIR [blank] SOURCEDIR
|
||
|
MyAppDir TARGETDIR MyApp
|
||
|
Bin MyAppDir Bin
|
||
|
Binx86Dir BinDir .:x86
|
||
|
BinAlphaDir BinDir .:Alpha
|
||
|
|
||
|
will give you target paths of
|
||
|
|
||
|
MyAppDir: [TARGETDIR]MyApp\
|
||
|
Bin: [TARGETDIR]MyApp\Bin\
|
||
|
Binx86Dir: [TARGETDIR]MyApp\Bin\
|
||
|
BinAlphaDir: [TARGETDIR]MyApp\Bin\
|
||
|
|
||
|
and source paths of
|
||
|
|
||
|
MyAppDir: [SOURCEDIR]MyApp\
|
||
|
Bin: [SOURCEDIR]MyApp\Bin\
|
||
|
Binx86Dir: [SOURCEDIR]MyApp\Bin\x86\
|
||
|
BinAlphaDir: [SOURCEDIR]MyApp\Bin\Alpha\
|
||
|
|
||
|
98-02-25 bench The NOUI property has changed to LIMITUI, since the property just
|
||
|
limits the UI to basic and doesn't really turn off the UI. NOUI
|
||
|
will still be supported for some time.
|
||
|
|
||
|
98-02-25 davidmck Added src\install\darreg.txt. This contains all the
|
||
|
data needed to register darwin files at install time
|
||
|
without running msiexec /REGSERVER.
|
||
|
|
||
|
98-02-24 malcolmh Fixed bugs 4323, 4334. Msizap now ignores the
|
||
|
SERVICE_DOES_NOT_EXIST error and delete folders and files
|
||
|
regardless of their attributes.
|
||
|
|
||
|
98-02-24 malcolmh Fixed bug 4340. Added WINAPI to INSTALLUI_HANDLER
|
||
|
prototype.
|
||
|
|
||
|
98-02-24 malcolmh Fixed Bug 4373. ERROR_INSTALL_TRANFORM FAILURE is
|
||
|
now ERROR_INSTALL_TRANSFORM_FAILURE.
|
||
|
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3818
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-18 malcolmh Added the PWNOMODIFY and PWNOREMOVE properties.
|
||
|
These properties prevent us from writing certain values
|
||
|
under the Uninstall key, to disable ARP and
|
||
|
ProgramsWizard functionality. See the properties spec
|
||
|
(http://officeweb/specs/TCO/DarwinProperties.html) for full
|
||
|
details.
|
||
|
|
||
|
98-02-17 malcolmh If you do msiexec /x without explicitly setting a UI
|
||
|
level you'll now get a prompt to confirm that you
|
||
|
really want to uninstall.
|
||
|
|
||
|
As /x is what the context menu uses, you'll see
|
||
|
this prompt when you right-click on a Darwin package and
|
||
|
choose Uninstall.
|
||
|
|
||
|
This does NOT affect any of the following:
|
||
|
- Calls through any Darwin API
|
||
|
- MSI.DLL
|
||
|
- Msiexec /x when you specify /q, /qn, /qb, /qr, or /qf
|
||
|
|
||
|
98-02-17 chetanp The MIME.Extension_ column is now non-nullable.
|
||
|
removed the CreateProgmanItems and RemoveProgmanItems
|
||
|
actions from template installexecutesequence table
|
||
|
added SelfUnregModules action to template
|
||
|
installexecutesequence table
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3817
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-17 chetanp schema changes -
|
||
|
|
||
|
|
||
|
1. The ProgMan table has been removed
|
||
|
|
||
|
2. Following column sizes/ attributes are
|
||
|
|
||
|
Class.Argument S255 L255 (localizable)
|
||
|
DrLocator.Parent s32 S32 (nullable)
|
||
|
DrLocator.Path s255 S255 (nullable)
|
||
|
IniLocator.FileName s96 s255 (size change)
|
||
|
RegLocator.Key s80 s255 (size change)
|
||
|
RegLocator.Name S50 S255 (size change)
|
||
|
RemoveIniLocator.FileName s96 l255 (localizable +
|
||
|
size change)
|
||
|
RemoveIniLocator.Section s96 l96 (localizable)
|
||
|
RemoveIniLocator.Key s128 l128 (localizable)
|
||
|
RemoveIniLocator.Value S255 L255 (localizable)
|
||
|
Shortcut.Arguments S255 L255 (localizable)
|
||
|
Verb.Command S255 L255 (localizable)
|
||
|
Verb.Argument S255 L255 (localizable)
|
||
|
|
||
|
3. a @ in the DrLocator.Path column no longer
|
||
|
evaluates to <null>.
|
||
|
|
||
|
|
||
|
98-02-16 tracyf Cleaned up the basic UI: it's now got an icon,
|
||
|
better looking font, and a simplified "Please wait..."
|
||
|
message instead of action specific names and data (we
|
||
|
still log all ActionData).
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3813
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-12 bench Fixed the custom action flags to work correctly with
|
||
|
our new sequencing model. Our new flags are the following:
|
||
|
|
||
|
(the bit names may change, the values will remain the same)
|
||
|
(note: the first to flags only make sense for CAs duplicated
|
||
|
in both sequence tables)
|
||
|
|
||
|
icaFirstSequence (256) : CA run in first sequence we execute
|
||
|
|
||
|
CA in UI sequence: run whenever UI sequence is run
|
||
|
CA in Execute sequence: run only if UI sequence wasn't run
|
||
|
(as in basic or no UI)
|
||
|
|
||
|
|
||
|
icaOncePerProcess (512) : CA run once per engine process
|
||
|
(there are potentially two engine processes on NT,
|
||
|
one for the client running the UI sequence and one
|
||
|
for the server running the Execute sequence. On 95,
|
||
|
there is only one process running both sequences)
|
||
|
|
||
|
CA in UI sequence: run whenever UI sequence is run
|
||
|
CA in Execute sequence: run if in server, or in client
|
||
|
if basic or no UI.
|
||
|
|
||
|
icaClientOnly (768) : CA is run in client only if
|
||
|
connected to a server.
|
||
|
|
||
|
CA in UI sequence: run only when in the client or connected
|
||
|
to the server (basically only run on NT with full/reduced
|
||
|
UI)
|
||
|
CA in Execute sequence: never run
|
||
|
|
||
|
NOTE: I am unclear to the benefit of this type of CA, but
|
||
|
this was supported before so it is still supported.
|
||
|
|
||
|
icaInScript (1024) : same as before, only run in execution
|
||
|
script. As such, this only makes sense for CAs in the
|
||
|
ExecuteSequence table.
|
||
|
|
||
|
icaRollback (256) : same as before, only used if icaInScript is set
|
||
|
|
||
|
icaNoImpersonate (2048) : do not impersonate the user. Should work
|
||
|
with all custom action types, not just icaInScript CAs as before
|
||
|
|
||
|
|
||
|
98-02-11 eugend I've replaced the CMsiMaskedEdit control with the
|
||
|
one provided by a-jhark
|
||
|
(this control is used only for PID number).
|
||
|
I've fixed bug # 3679 - the cursor doesn't move on
|
||
|
its own within edit
|
||
|
controls now.
|
||
|
|
||
|
98-02-11 davidmck Replaced the ClearVolumeCache function in services
|
||
|
with ClearAllCaches so the volume and record caches
|
||
|
are cleared.
|
||
|
|
||
|
98-02-11 t-robmen Added (-x) flag to MsiDB.exe. This flag will allow
|
||
|
you to extract a file/table out of a specfied
|
||
|
database.
|
||
|
ex: msidb.exe -dtestdb.msi -xBinary
|
||
|
|
||
|
(extracts the Binary table from the testdb.msi into a
|
||
|
file named Binary in you current drive)
|
||
|
NOTE: This flag will NOT extract storages (aka: nested msi's)
|
||
|
|
||
|
98-02-11 bench Added MSPATCHC.dll to the TOOLS folder on
|
||
|
\\united\darwin. This is required by msipat.dll.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3811
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-11 bench Patch table: added Attributes column - a bit field
|
||
|
for various patch attributes. Also moved the
|
||
|
Patch.Sequence column to the set of primary keys to allow
|
||
|
multiple patches for the same file. These schema
|
||
|
changes are merged in with the previous changes for version
|
||
|
26.
|
||
|
|
||
|
98-02-11 bench MSPATCH: changed the dropped dll from mspatch.dll to
|
||
|
mspatcha.dll. The new dll contains only the patch
|
||
|
application apis, whereas the old dll also contained
|
||
|
the patch creation apis. The new dll is of course
|
||
|
smaller. The new dll replaces the old in the COMMON
|
||
|
drop folder and in the files installed by instmsi.exe
|
||
|
and copymsi.exe.
|
||
|
|
||
|
98-02-11 bench Added new API: MsiCreateTransformSummaryInfo, which
|
||
|
creates and populates the summary information stream
|
||
|
of an existing transform file. This api correctly
|
||
|
fills in the properties with the base and reference
|
||
|
ProductCode and ProductVersion properties, which has
|
||
|
been broken for a while. Also, the
|
||
|
MsiDatabaseGenerateTransform api and MsiDatabase.GenerateTransform
|
||
|
methods no longer create the suminfo for a transform.
|
||
|
Updated MsiTran.exe to use the new api.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3810
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-10 malcolmh URL source lists are now implemented.
|
||
|
|
||
|
98-02-10 malcolmh The minimum and maximum database versions have been
|
||
|
bumped. This means that your package must conform
|
||
|
to version 26.
|
||
|
|
||
|
98-02-10 malcolmh The new dual-sequence table model is in place. We
|
||
|
now have a UI sequence and an Execute sequence for each
|
||
|
of the top-level actions (Install, Admin,
|
||
|
Advertise). Changes to your package are required. See
|
||
|
my mail for details.
|
||
|
|
||
|
98-02-09 t-robmen Added (-k) flag to MsiDB.exe. This flag will allow
|
||
|
you to kill (remove) a file/table/storage inside a
|
||
|
specfied database.
|
||
|
ex: msidb.exe -dtestdb.msi -kBinary (removes
|
||
|
the Binary table from
|
||
|
the testdb.msi)
|
||
|
|
||
|
98-02-09 bench Implemented change to "transaction model." Transactions are
|
||
|
defined as the changes that may be committed and not rolled
|
||
|
back should an error occur. The new model is thus:
|
||
|
|
||
|
InstallValidate - check disk space/files in use
|
||
|
NestedInstall - outside parent transaction - failure
|
||
|
of parent won't roll back
|
||
|
InstallInitialize - mark start of transaction, lock server
|
||
|
NestedInstall - merged with parent's transaction
|
||
|
InstallFinalize - run script and unlock server
|
||
|
NestedInstall - outside parent transaction - failure
|
||
|
won't rollback parent install
|
||
|
|
||
|
Note that InstallInitialize is a new action. ExecuteFinalize is
|
||
|
renamed to InstallFinalize.
|
||
|
|
||
|
98-02-09 bench Fixed several problems with concurrent installs. We now detect
|
||
|
when an in-progress install is still running and don't ask the
|
||
|
user to rollback the install. If a running in-progress install
|
||
|
is found and there is UI, a retry/cancel dialog is displayed.
|
||
|
If no UI, ERROR_INSTALL_ALREADY_RUNNING is returned.
|
||
|
|
||
|
98-02-09 bench The question of whether to rollback a cancelled or failed
|
||
|
install is now handled in an error message, whereas before
|
||
|
it was authored into the final exit dialog. To keep this
|
||
|
behaviour optional, the ALLOWSUSPEND property must be set
|
||
|
for this question to be asked. If this property is not set,
|
||
|
rollback is always performed after a cancel or failed install.
|
||
|
|
||
|
98-02-09 davidmck Improved handler speed by adding AttributeEx
|
||
|
function which takes an enum rather than the string when we
|
||
|
know what we want.
|
||
|
Made the ProcessText function virtual so the rich
|
||
|
edit control could overload it. Improves the speed of
|
||
|
the rich edit control since we did all the work and
|
||
|
then threw it away before.
|
||
|
|
||
|
98-02-08 johndelo Removed Localize column from _Validation table. The
|
||
|
localizable attribute appears in the schema definitions.
|
||
|
|
||
|
98-02-08 johndelo ODBC: Removed Feature column from all table and
|
||
|
script opcodes. Advertised via PublishComponent table.
|
||
|
Attribute values are now nullable.
|
||
|
|
||
|
98-02-08 johndelo Updated headers to reflect change of message type
|
||
|
imtDiagnostic to imtFilesInUse (see relnotes 1/31).
|
||
|
Msi.h now uses INSTALLMESSAGE_FILESINUSE, and log
|
||
|
modes supplied via MsiExec and automation use the
|
||
|
letter 'f' for files in use messages.
|
||
|
|
||
|
98-02-08 bench Fixed the rollback of nested installs (that are
|
||
|
merged in the parent's execution script). In the
|
||
|
process, the ixoProductRestore operation was removed.
|
||
|
ixoProductInfo with no arguments has taken its place.
|
||
|
Bumped the script version to 13 as a result.
|
||
|
|
||
|
98-02-08 malcolmh Added args to msizap to make it less dangerous.
|
||
|
|
||
|
98-02-08 bench Added Upgrade table and Upgrade actions to
|
||
|
schema.msi and template.msi. Since the Upgrade table is not
|
||
|
populated, the actions currently do nothing.
|
||
|
|
||
|
98-02-08 bench Added MIGRATE property and MigrateFeatureSettings
|
||
|
action. The property is a ';'-delimited list of
|
||
|
product codes from which to migrate feature settings. This
|
||
|
property is set in the FindRelatedProducts action
|
||
|
and when applying a patch. The action sets the feature
|
||
|
states for the current install to the states of the
|
||
|
features in the existing products. It is assumed
|
||
|
that the features of the existing products have the same
|
||
|
names as the features of the installed product.
|
||
|
|
||
|
98-02-08 malcolmh The non-DBCS versions of MsiString.Compare and
|
||
|
MsiString.Extract now support embedded nulls. Embedded
|
||
|
nulls are treated like any other character.
|
||
|
|
||
|
98-02-08 malcolmh Fix for bug 3214 -- spit out ixoChangeMedia before
|
||
|
ixoDatabaseCache.
|
||
|
|
||
|
98-02-08 malcolmh Fixed bug 3983 -- assert when disconnecting network
|
||
|
card.
|
||
|
|
||
|
98-01-26 malcolmh Darwin now creates a mutex named "__MsiPromptForCD"
|
||
|
when promping the user for a disk during source
|
||
|
resolution. This is what we already do when prompting
|
||
|
the user to change disks during an install.
|
||
|
|
||
|
98-02-08 malcolmh For single disk installs the volume label in the
|
||
|
media table no longer has to match the actual volume
|
||
|
label of the media.
|
||
|
|
||
|
98-02-08 malcolmh Source management for redist packs (and nested
|
||
|
installs in general) is done. The nested install will use
|
||
|
its parents to find an available source, and will
|
||
|
also use its own sourcelist if it has been installed as
|
||
|
a top-level install. Added SourceProduct arg to
|
||
|
IxoSourceListRegisterLastUsed. Added ChildPackagePath,
|
||
|
ChildDiskId, and Parent to IxoProductPublish &
|
||
|
IxoProductUnpublish. Bumped script version.
|
||
|
|
||
|
98-02-08 malcolmh Consolidated exception handling. All exception
|
||
|
handling is now done in our unhandled exception handler
|
||
|
which is installed by the global message context
|
||
|
object. It is at this point that we generate the exception
|
||
|
message. In DEBUG builds we log the exception info
|
||
|
message to the debug log and display the message. In
|
||
|
both builds we'll write the message to the log if
|
||
|
logging is enabled, and we'll write the message to the
|
||
|
event log. The amount of exception information that we
|
||
|
gather is less in the ship build than in the debug
|
||
|
build. Also, we currently have a problem displaying the
|
||
|
correct symbol names for exceptions that occur in the
|
||
|
service.
|
||
|
|
||
|
98-02-08 mattwe ODBC: Added rollback for translators, drivers, driver
|
||
|
manager and data sources.
|
||
|
|
||
|
CMsiRegKey::ValueExists(), fixed a case that could result
|
||
|
in either a memory leak or a over-released error record.
|
||
|
|
||
|
98-02-07 chetanp schema change - SelfReg table no longer has
|
||
|
RegisterFn and UnregisterFn columns. We now only support the
|
||
|
default (DllRegisterServer and DllUnregisterServer)
|
||
|
|
||
|
98-02-07 chetanp selfreg action is now run as a separate process. we
|
||
|
use the capabilities of msiexec to selfreg. we call
|
||
|
msiexec as a customaction in execute
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3807
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-07 mattwe DATABASE VERSION 0.25. Minimum unchanged.
|
||
|
|
||
|
Internet download: Now does cabinets on a "as-needed"
|
||
|
basis. Basically, if you never need a file from the
|
||
|
cabinet, the cabinet won't get downloaded. You can now
|
||
|
put *any* source under a URL, and install as if from
|
||
|
any other source. (i.e. you can copy testdb into a web
|
||
|
site.)
|
||
|
|
||
|
Services: Added "vital" flag to ServiceInstall.ErrorControl.
|
||
|
Add 0x8000 0000 to the value, and the if the service
|
||
|
fails to install, you won't be provided with an ignore.
|
||
|
Note that the "old" mechanism is used if the vital isn't
|
||
|
set. (So you may not see an ignore even if vital isn't set.)
|
||
|
The flag won't be read (even if set,) on 0.24 and older
|
||
|
databases. We'll strip it and do the expected thing.
|
||
|
|
||
|
InitRegKey: fixed memory leaks for keys that couldn't
|
||
|
be opened due to access denied. It's now more stringent
|
||
|
about failing the install.
|
||
|
|
||
|
LockPermissions table: changed LockPermissions.Permissions
|
||
|
from a text field to a binary. <= 0.24 database will still
|
||
|
be read as a string. 0.25 and later are expected to be
|
||
|
binary.
|
||
|
|
||
|
TestDb: modified LockPermissions table to include
|
||
|
full control for administrators for all settings. Devs
|
||
|
now should have no problem doing full installs, as long
|
||
|
as you're an administrator. (So please unghost it.)
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3806
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-06 t-robmen MsiDb.exe NEW features. You can now:
|
||
|
o (-a) Add files (usually cabinets) directly into a
|
||
|
darwin database
|
||
|
o (-r) Add storages (usually nested darwin databases)
|
||
|
directy into a darwin database
|
||
|
o Do merges, do transforms, and the above two
|
||
|
options simply by specifiy a target database with (-d) AND
|
||
|
a source database with one of the following flags:
|
||
|
(-m), (-t), (-a), (-r)
|
||
|
|
||
|
NOTE: The target database MUST exist before using the last NEW feature.
|
||
|
Use (-c) if the database does NOT exist yet.
|
||
|
The (-?) option reflects the additions.
|
||
|
|
||
|
98-02-06 t-robmen Added FileSize and FileVersion to Installer OLE
|
||
|
Automation.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3805
|
||
|
-----------------------------
|
||
|
|
||
|
98-02-05 johndelo IMsiDatabase::GetTableState has been exposed, and will
|
||
|
soon replace FindTable, which can no longer be supported.
|
||
|
For internal automation, there is a TableState property.
|
||
|
FindTable will supported for this release only, to allow
|
||
|
tests to be converted to use (Get)TableState, which allows
|
||
|
a particular attibute of the table to be queried. See
|
||
|
MsiAuto.hlp, or itsEnum in database.h.
|
||
|
|
||
|
98-02-05 malcolmh Created MSIZAP.EXE. This is a more robust replacement
|
||
|
for clearreg. ** TESTING: this should be dropped instead
|
||
|
of clearreg. Clearreg doesn't work any more. MsiZap
|
||
|
does a more thorough job of cleaning your system. BE SURE
|
||
|
to do a msizap /? to see what it does before you run
|
||
|
it. Currently it's an all-or-nothing zap. If there's a need
|
||
|
to be more granular let me know.
|
||
|
|
||
|
98-02-05 malcolmh Our policies are now located in their final resting spot, in:
|
||
|
(HKCU/HKLM)\Software\Policies\Microsoft\Windows\Installer
|
||
|
|
||
|
98-02-05 malcolmh Implemented some new and changed policies:
|
||
|
|
||
|
- We now respect the policy values AlwaysInstallElevated,
|
||
|
DisableMsi, and DisableBrowse. For details on these see the
|
||
|
Policies, SourceList, and Security specs. In short:
|
||
|
|
||
|
- If both the user and machine AlwaysInstallElevated policies
|
||
|
are set then, unless we're disabled, we'll install all apps
|
||
|
elevated.
|
||
|
|
||
|
- DisableMsi can be set such that we won't install unmanaged
|
||
|
packages, or so that we'll refuse to install any package.
|
||
|
|
||
|
- DisableBrowse replaces EnableBrowse, so that we default
|
||
|
to allowing browsing from the source dialog.
|
||
|
|
||
|
98-02-05 malcolmh Implemented the Security spec:
|
||
|
|
||
|
- We create a key named "Secure" under our
|
||
|
HKLM\Sw\Ms\Win\CV\Installer key so that we won't ever
|
||
|
think the key is empty and therefore won't ever delete it.
|
||
|
|
||
|
- We now ACL (secure) our registry keys and files. For a
|
||
|
full description see the security design doc on http://jdelo3.
|
||
|
In short, we put an ACL on %WINDIR%\MSI, X:\config.msi,
|
||
|
%USERPROFILE%\Msi, our "publish" reg keys, and our local machine
|
||
|
reg keys.
|
||
|
|
||
|
- We ACL OLE goop for assigned apps.
|
||
|
|
||
|
- Our ACL gives SYSTEM full control and everyone else Read
|
||
|
access. To delete our ACL'd keys & files you must be an admin
|
||
|
and you must first take ownership of the key or file and
|
||
|
then give yourself delete access. Or you can use MsiZap.
|
||
|
|
||
|
- We now use the %WINDIR%\Msi directory as our TEMP dir
|
||
|
for any secure temp files.
|
||
|
|
||
|
- We should now be storing any temp file created while we're in
|
||
|
the server should in a secure location. If you have an NTFS drive
|
||
|
and are able to delete or change any of our temp files (rollback
|
||
|
scripts, install scripts, temp patching files, custom action DLLs
|
||
|
& EXEs, temp cached database) then something's broken.
|
||
|
|
||
|
- We now support an "Impersonated" mode. In this mode we'll
|
||
|
impersonate during the entire install, except when we
|
||
|
need to access our keys and files. For these we temporarily
|
||
|
revert to SYSTEM privileges. This necessitated identifying
|
||
|
all possible locations where we were accessing secure files
|
||
|
and adding the Elevate call. If I've missed any places you'll
|
||
|
see errors like "could not write reg key blah" or "access
|
||
|
denied writing file blah". We will operate in this mode unless
|
||
|
policy directs us to do otherwise.
|
||
|
|
||
|
- Here's the logic we use to determine whether we Elevate,
|
||
|
Impersonate, or Frustrate. Elevate mode is what we always
|
||
|
used to do when the service was registered; you pretty much
|
||
|
have free reign on the system. Impersonate mode is described
|
||
|
above. And if we must reject the installation then we're sure
|
||
|
to Frustrate the user...
|
||
|
|
||
|
IF DisableMsi policy == 2 THEN
|
||
|
Frustrate
|
||
|
ELSE IF the app is assigned THEN
|
||
|
Elevate
|
||
|
ELSE
|
||
|
IF DisableMsi policy == 1 THEN
|
||
|
Frustrate
|
||
|
ELSE IF (user & machine elevate policies == 1) THEN
|
||
|
Elevate
|
||
|
ELSE
|
||
|
Impersonate
|
||
|
FI
|
||
|
FI
|
||
|
|
||
|
- We now determine whether an app is Assigned or not by looking
|
||
|
at the ACL on the published product key and seeing whether
|
||
|
SYSTEM is the owner. If so, then the app is assigned. This implies
|
||
|
that we only ACL the published product key if the app is
|
||
|
Assigned.
|
||
|
|
||
|
- DEV: GetTempPath is now hard to call, as we really should be using
|
||
|
a secure location for most of our temp files. If you see a !!!
|
||
|
compiler errorthat you don't understand, it's probably this.
|
||
|
|
||
|
- Our service now ACLs some keys and files when it starts:
|
||
|
* HKLM\Software\Microsoft\Windows\CurrentVersion\Installer
|
||
|
* HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\Secure
|
||
|
* %WINDIR%\Msi
|
||
|
|
||
|
- We only apply ACLs when we can. You won't get any ACLs on Win95 and
|
||
|
you won't see any ACLs on files or folders on your FAT drive.
|
||
|
|
||
|
- Added optional AdminAssigned arg to ixoProductInfo opcode. This
|
||
|
arg is simply a placeholder, and can be set to any value. The
|
||
|
ixoProductInfo operation will fill in the correct value.
|
||
|
|
||
|
98-02-04 chetanp enhanced component sharing and thrashing support to
|
||
|
accomodate nested merged installs. added global
|
||
|
component table to communicate the component client state
|
||
|
transitions. we now recalculate the component
|
||
|
installed and action states in ProcessComponents action.
|
||
|
|
||
|
98-02-04 tracyf Enhanced costing to support the removal of old files
|
||
|
via the RemoveFile table when the same file(s) will
|
||
|
also be installed via the File table. Without this
|
||
|
support, the RemoveFile costing was subtracting the
|
||
|
cost of removing the file, while the InstallFile
|
||
|
costing was also subtracting the cost of the existing file
|
||
|
(not knowing it was going to be removed by another
|
||
|
action). Now, InstallFiles costing knows if another
|
||
|
action is removing a file it is going to install, and
|
||
|
if so, reacts as if the existing file is not there
|
||
|
(i.e. no version checking, and it ignores the size of
|
||
|
the existing file).
|
||
|
|
||
|
98-02-03 bench Upgrades/Patching: Fixed several problems, mostly to
|
||
|
allow patches or upgrades that change the product
|
||
|
code. Also added the ability for an upgrade to remove
|
||
|
any obsolete patches.
|
||
|
|
||
|
98-02-02 davidmck Enhanched MSIEXEC /REGSERVER to see if msi.dll was
|
||
|
registered to handle the proxy code and if not, call
|
||
|
DllRegisterServer() in msi.dll.
|
||
|
|
||
|
98-02-02 t-robmen When an open database handle is passed to the
|
||
|
OpenPackage, Dawin now correctly sets the running path.
|
||
|
Also, UIPreview of a database is now internally
|
||
|
specified by iuiNextEnum in engine.cpp and msiquery.cpp
|
||
|
|
||
|
98-02-02 t-robmen Added FileSize and FileVersion info to runscrpt.cpp
|
||
|
|
||
|
98-02-02 eugend Fixed bugs # 1525, 2736 - CMsiText control formats
|
||
|
strings that contain a path or a registry key before
|
||
|
displaying
|
||
|
them. Fixed bug # 3244 - If there are no items in
|
||
|
CSelectionTree control, it empties text in other
|
||
|
controls and
|
||
|
disables buttons. I've added SelectionNoItems
|
||
|
control event and three new events into EventMapping.idt
|
||
|
table.
|
||
|
|
||
|
98-02-02 mattwe Note: I am NOT adding this to TestDB until it has
|
||
|
passed a round or two of testing. It mucks with
|
||
|
system settings which can pretty well hose you.
|
||
|
New optional table: Environment
|
||
|
Documentation forthcoming. Basically, you describe
|
||
|
names and values for environment variables.
|
||
|
New optional actions: RemoveEnvironmentStrings,
|
||
|
WriteEnvironmentStrings. Basically just the uninstall
|
||
|
and install placeholders.
|
||
|
New opcode: ixoUpdateEnvironmentStrings
|
||
|
Same opcode for 95 and NT. The AutoExecPath is only
|
||
|
used on 95, however. It should point at the location
|
||
|
where the AutoExec lives. The WIN95_ENVIRONMENT_TEST
|
||
|
property can be set to override this value to protect
|
||
|
your system.
|
||
|
|
||
|
On NT, this opcode modifies the registry directly.
|
||
|
On 95, it rewrites the autoexec.bat file.
|
||
|
|
||
|
98-02-02 mattwe DB Version 0.24. Backwardly compatible with 0.23.
|
||
|
See services below for schema change.
|
||
|
|
||
|
Services: Added ServiceInstall.Arguments column. It's
|
||
|
completely optional until such time as we move the mininum
|
||
|
database version to 24. This column allows you to provide
|
||
|
startup arguments to a service. They're passed in to the
|
||
|
WinMain at every start, as opposed to per-start arguments in
|
||
|
the ServiceControl table. (Per-start means each requestor
|
||
|
can pass different arguments.) Bug/feature request #3919
|
||
|
|
||
|
98-01-31 tracyf When InstallValidate detects an out-of-disk-space
|
||
|
condition, it now sends a message of the
|
||
|
imtOutOfDiskSpace type to the Message facility (instead of a
|
||
|
generic imtError message). The record accompanying the
|
||
|
message contains a string holding the path to the
|
||
|
out-of-space disk in field [2], the required space in field
|
||
|
[3], and the available space on that volume in field [4].
|
||
|
This allows an external Handler to intercept and process the
|
||
|
message as it sees fit.
|
||
|
|
||
|
98-01-31 tracyf Added the imtFilesInUse message type (the unused imtDiagnostic
|
||
|
type has been replaced). Now, instead of calling
|
||
|
DoAction("FilesInUse") from InstallValidate, the imtFilesInUse
|
||
|
message is sent through the MsiEngine::Message facility
|
||
|
instead. The record sent with the Message(imtFilesInUse, riRec)
|
||
|
call describes all modules currently in use whose associated
|
||
|
file needs to be replaced. The record contains two strings
|
||
|
for each module - the first containing the module name, and the
|
||
|
second containing the title of the module's main window. The
|
||
|
MsiHandler has been modified to accept this message and display
|
||
|
the same "FilesInUse" dialog it did before. Any external
|
||
|
Handler can process the message as it sees fit. This change
|
||
|
was necessary because the previous mechanism of adding rows
|
||
|
to the Listbox table from within InstallValidate breaks when
|
||
|
running nested installs, since the current engine and the
|
||
|
Handler may be reading/writing separate databases.
|
||
|
|
||
|
98-01-31 tracyf NT Event logging has been improved. On either
|
||
|
successful completion of an install, or termination due
|
||
|
to a fatal error, a single event is now written to the
|
||
|
Event log. The event text consists of the name of the
|
||
|
product, and either an "install operation successful"
|
||
|
message, or the full text of the error message resulting
|
||
|
from the fatal error. Note: for the Event Log text to be
|
||
|
formatted properly, msi.dll must be registered in the
|
||
|
Registry as a source of Event Log messages, under the
|
||
|
System\\CurrentControlSet\\Services\\EventLog\\Application\\MsiInstaller"
|
||
|
key. This registration is performed automatically when
|
||
|
DllRegisterServer is called on msi.dll.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3730
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-30 johndelo MsiEnableLog now interprets a NULL log file path as
|
||
|
disable logging, in which case the logmode is
|
||
|
ignored. If a path is supplied, then the logmode must not be
|
||
|
zero. There were 5 nearly duplicate bugs related to
|
||
|
this.
|
||
|
|
||
|
98-01-30 johndelo To enable registraton of internal COM interfaces for
|
||
|
automation, the environment variable _MSI_TEST must
|
||
|
be set to a string containing the letter 'R'. By
|
||
|
default only the public API automation interface and the
|
||
|
custom marshalling code is registered. Temporarily
|
||
|
regmsi.exe sets this environment variable until tests
|
||
|
are fixed up. Using regsvr32 or direct call to DLL
|
||
|
will required the environment variable to be set for
|
||
|
internal automation registration. Other test options are
|
||
|
forthcoming.
|
||
|
|
||
|
98-01-28 mattwe Services: added disable/enable timeout wrappers.
|
||
|
For the most part, the service control manager (SCM)
|
||
|
has its own timeouts that will kick back to us.
|
||
|
|
||
|
98-01-28 mattwe Services: Fixed dependent services bugs. Two things
|
||
|
were hoked, one due to the complexity of the test case,
|
||
|
and another from misread documentation.
|
||
|
|
||
|
Reminder: The ServiceInstall.Dependencies column is a
|
||
|
list of service *names*, like the ones in ServiceInstall.Name
|
||
|
or ServiceControl.Name. Each name should be separated by
|
||
|
[~] (null), and the list should end with [~][~] double null.
|
||
|
|
||
|
98-01-28 davidmck Changed the interface between client and server from
|
||
|
using IDispatch to using IDL files and doing the RPC
|
||
|
calls directly.
|
||
|
This is a performance improvement.
|
||
|
|
||
|
98-01-28 mattwe Script: new opcode ixoStreamAdd. Bumped script version to 11.
|
||
|
This allows a stream to be added to a file. The last parameter
|
||
|
is an IMsiStream object, with the data. This does not rollback,
|
||
|
similarly to ixoStreamsRemove, as it is only used by the
|
||
|
admin database copy.
|
||
|
|
||
|
Property: Added AdminProperties (IPROPNAME_ADMIN_PROPERTIES)
|
||
|
This contains a ';' delimited list of properties that should
|
||
|
be saved for post-admin installs. This can include lower
|
||
|
or upper case (external) properties.
|
||
|
|
||
|
Network installs: during a network install, the properties
|
||
|
listed in AdminProperties are saved to a separate UNICODE
|
||
|
stream called AdminProperties in the destination storage.
|
||
|
|
||
|
Post admin install: property resolution now has an
|
||
|
intermediate step where properties from the admin install
|
||
|
override values in the database. These values, in turn,
|
||
|
are still overriden by the command line.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3727
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-26 johndelo Timeout logic in the UI thread changed to provide
|
||
|
frequent (currently 50 msec) ticks which are
|
||
|
sent to the UI handlers to pump their messages,
|
||
|
eliminating some lockups and display failures.
|
||
|
After a given number of ticks (currently 20 seconds)
|
||
|
the timeout error is displayed allowing the user
|
||
|
to retry or cancel (except if in the debugger).
|
||
|
This timeout is disabled when running customs actions,
|
||
|
as they can't be assured of sending progress messages.
|
||
|
|
||
|
98-01-26 johndelo MsiCloseAllHandles is fixed to close only handles
|
||
|
allocated by the calling thread (not those used by
|
||
|
the engine, automation, or other custom actions).
|
||
|
MsiCloseHandle must be called in the thread where
|
||
|
the handle was obtained. An assert is now given
|
||
|
where this fails, but will be changed to an error.
|
||
|
|
||
|
98-01-26 bench We no longer register package codes under a
|
||
|
"Packages" key. Package codes are now only stored under the
|
||
|
appropriate product key. This change was made to
|
||
|
avoid the complications of merging the Packages key on
|
||
|
NT5.
|
||
|
|
||
|
98-01-26 bench Added new reinstallmode: REINSTALLMODE_PACKAGE, or
|
||
|
'v'. This mode ensures the source package is used and
|
||
|
cached, even if a cached package exists. This will
|
||
|
be used to reinstall from network images that have
|
||
|
been updated with patches that don't change the product
|
||
|
code.
|
||
|
|
||
|
98-01-26 t-robmen Modified MsiSpy to use MsiGetComponentPath instead
|
||
|
of MsiGetComponentLocation.
|
||
|
Removed references to INSTALLSTATE_DEFAULT as a
|
||
|
returned value.
|
||
|
OLE Automation:
|
||
|
o Added productCode to GetFileInfo and Query Component State
|
||
|
o Use GetComponentPath instead of GetComponentLocation
|
||
|
(in the near future GetComponentLocation will be removed)
|
||
|
|
||
|
98-01-26 mattwe TestDb: modified the TestDB service to uninstall
|
||
|
as expected, as well as not to be deleted during an
|
||
|
install if it already exists. (It used to delete it,
|
||
|
and then install it fresh. Now it just re-configures
|
||
|
what is already there.)
|
||
|
|
||
|
98-01-26 mattwe Rollback: Registry keys and files/folders will now
|
||
|
preserve security settings during a remove/rollback.
|
||
|
|
||
|
98-01-26 mattwe Services: you can now "re-configure" pre-existing
|
||
|
services on a machine, which includes re-installation.
|
||
|
Additional: Bug #4016, #3645
|
||
|
|
||
|
98-01-26 tracyf Darwin now creates a mutex named "__MsiPromptForCD"
|
||
|
when promping the user to change disks (the mutex is
|
||
|
closed after the user inserts a new disk, clicks OK
|
||
|
and Darwin has verified the disk label of the new
|
||
|
disk, or the user cancels). This allows CD autorun
|
||
|
applications to determine whether or not to run (or
|
||
|
disable UI).
|
||
|
|
||
|
98-01-26 tracyf New SelectionManager change/feature: If the user
|
||
|
applies a patch to an install, such that any feature
|
||
|
currently installed RunFromSource now references one
|
||
|
or more files that need to be patched, that feature will
|
||
|
be forced out of the RunFromSource state. This is
|
||
|
done by defaulting the action state of the feature to
|
||
|
Advertised, and disallowing RunFromSource as a
|
||
|
possible install state.
|
||
|
|
||
|
98-01-26 tracyf The DiskPrompt message displayed when Darwin needs
|
||
|
the user to insert a new disk has changed. It is now
|
||
|
built by treating the imsgPromptForDisk error string,
|
||
|
combined with the DiskPrompt property, as a
|
||
|
template, and using the DiskPrompt column of the Media table
|
||
|
as an argument for the template. A topic is being
|
||
|
added to the documentation to explain how this works
|
||
|
(see bug 4031).
|
||
|
|
||
|
98-01-26 johndelo Custom actions will now handle the various execution models.
|
||
|
Actions before InstallValidate will be sequenced twice if
|
||
|
full UI is used and the service is registered. Mode bits have
|
||
|
been defined to determine whether the action runs on the
|
||
|
client or server or both. This required changing the bit
|
||
|
values for deferred exection and rollback (need to add 768
|
||
|
if the type value was > 256). CustomAc.doc has been updated
|
||
|
(on \\JDELO3\MsiDoc and \\XLWEB2\DarwinDoc). TestDB updated.
|
||
|
|
||
|
98-01-26 johndelo Release notes for 1997 have been archived in RELNOT97.txt
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3722
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-21 johndelo INSTALLMESSAGE_OUTOFMEMORY replaced by INSTALLMESSAGE_FATALEXIT
|
||
|
encompassing out of memory, not responding, and premature termination.
|
||
|
New messages are defined in the Error table for each of these:
|
||
|
imsgTimeRemaining 16 "Time remaining: {[1] min }[2] sec"
|
||
|
imsgOutOfMemory 17 "Out of memory. Shutdown other applications before retrying"
|
||
|
imsgTimedOut 18 "Installer is no longer responding"
|
||
|
imsgException 19 "Installer terminated prematurely"
|
||
|
These messages are cached by the UI handler in case fatal exit
|
||
|
|
||
|
98-01-21 johndelo New message types may be requested by the external message handler:
|
||
|
INSTALLMESSAGE_INITIALIZE = 0x0C000000L, // sent prior to UI initialization, no string data
|
||
|
INSTALLMESSAGE_TERMINATE = 0x0D000000L, // sent after UI termination, no string data
|
||
|
INSTALLMESSAGE_SHOWDIALOG = 0x0E000000L, // sent prior to display of authored dialog or wizard
|
||
|
The SHOWDIALOG message passes the name of the action. If this message is handled
|
||
|
(i.e. doesn't return 0) then the UI dialog or wizard will not be called.
|
||
|
|
||
|
98-01-21 johndelo The UI handling of all types and logging is now handled outside
|
||
|
the engine in its own thread, which is the caller's thread when
|
||
|
using the install APIs, but which is a child thread when using
|
||
|
MsiOpenProduct and MsiOpenPackage and the session API functions.
|
||
|
The UI thread is shared by all engines/installs for the session.
|
||
|
The UI will time out if the engine thread fails to respond, in
|
||
|
which case a dialog will be displayed (if not debugging). Out of
|
||
|
memory will result in a dialog which allows a retry as well.
|
||
|
Premature termination (i.e. crash) is not handled silently in
|
||
|
this build. All three failures will result in an error return to
|
||
|
the caller, but the resource cleanup is not implemented in this build.
|
||
|
|
||
|
98-01-21 malcolmh DEV: g_fIsService has been changed to
|
||
|
g_scServerContext. This will be set to scService if we're running
|
||
|
as a OLE service, scServer if we're running as an OLE
|
||
|
server, and scClient in other cases.
|
||
|
|
||
|
98-01-21 bench Moved the location of the UpgradeCode information in
|
||
|
the registry. We no longer register the UpgradeCode
|
||
|
under the advertised product key. I have added an
|
||
|
UpgradeCodes key under the Installer key in HKLM.
|
||
|
Each upgrade code has a key under that, and has a value
|
||
|
for each product with that upgrade code. Removed the
|
||
|
UpgradeCode arg from ixoProductPublish/Unpublish and
|
||
|
added it to ixoProductRegister/Unregister. Bumped
|
||
|
script version to 10 as a result.
|
||
|
|
||
|
98-01-20 t-robmen Modified msispy.cpp and msispyu.cpp to clean up
|
||
|
major MSIHANDLE leaks (now use PMSIHANDLEs and no longer
|
||
|
use static MSIHANDLEs in Enum functions)
|
||
|
Also removed MsiCloseAllHandles() from ~CMsispy which
|
||
|
was crashing any OLE Automation attempted. MsiSpy
|
||
|
OLE Automation should work without crashing now.
|
||
|
|
||
|
|
||
|
98-01-20 mattwe CMsiRegKey: Removed the security descriptors from
|
||
|
CMsiRegKey.Create() Now, place the security descriptor
|
||
|
in the CreateChild() call. This allows the registry
|
||
|
key to get set either from the explicit Create, or
|
||
|
the implicit AddValue. If specified, this will allow
|
||
|
overwriting the security of an existing key.
|
||
|
Note: The CreateChild() without a security descriptor
|
||
|
will *not* inherit the parent's descriptor.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3720
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-18 bench Added 3 new properties which can be queried with
|
||
|
MsiGetProductInfo: INSTALLPROPERTY_PACKAGECODE,
|
||
|
INSTALLPROPERTY_UPGRADECODE and INSTALLPROPERTY_VERSION. All
|
||
|
are advertised properties.
|
||
|
|
||
|
98-01-18 malcolmh We now display progress when copying our database to
|
||
|
the TEMP directory during first-run. We show
|
||
|
progress both when copying from a floppy and when doing an
|
||
|
internet download.
|
||
|
|
||
|
98-01-18 malcolmh If you send a "Master Reset" event to the basic UI's
|
||
|
progress bar, we reset the progress bar UI.
|
||
|
Previously the UI was reset only upon receipt of a subsequent
|
||
|
progress report.
|
||
|
|
||
|
98-01-17 malcolmh Moved appending of ".msi" or ".msp" from the API to
|
||
|
msiexec.exe. You have to pass the real file name to
|
||
|
the API now, but you can leave off the ".msi" or
|
||
|
".msp" when using msiexec.
|
||
|
|
||
|
98-01-17 malcolmh Changed our DebugString function to prepend "MSI: " to
|
||
|
debug messages if we're running on the client side,
|
||
|
and "MSI (s): " if we're running in the server.
|
||
|
|
||
|
98-01-17 malcolmh We now generate install scripts in the server. Our new
|
||
|
model allows for three possible configurations:
|
||
|
|
||
|
1) The entire install is run in the client space; we
|
||
|
never connect to the server.
|
||
|
|
||
|
We do this when the server is not registered. We'll
|
||
|
probably eventually always do this on Win95.
|
||
|
|
||
|
2) The entire intall is run on the server.
|
||
|
|
||
|
We do this when the UI level is Basic or None. In
|
||
|
this case the only thing running on the client side
|
||
|
is the Basic UI.
|
||
|
|
||
|
3) We run part of the install on the client and part on
|
||
|
the server.
|
||
|
|
||
|
We do this when we can connect to the server and the
|
||
|
UI level is reduced or full. In this case when a
|
||
|
sequence is run we process all actions through
|
||
|
InstallValidate on the client side. We then shift
|
||
|
to the server and run all actions from the beginning
|
||
|
of the sequence through ExecuteFinalize. We then
|
||
|
shift back to the client and run all actions after
|
||
|
ExecuteFinalize.
|
||
|
|
||
|
When we're running in this configuration certain
|
||
|
actions behave differently, and we skip all UI
|
||
|
actions. What we do differently when we're on the
|
||
|
server side:
|
||
|
|
||
|
- We don't cost.
|
||
|
- We don't do appsearch (NYI)
|
||
|
- We do a quicker CCP check (NYI)
|
||
|
- We don't reboot; the reboot status is
|
||
|
propagated back to the client side, which
|
||
|
will trigger the reboot.
|
||
|
|
||
|
As usual, I print out debug strings indicating when
|
||
|
we switch to the server and when we switch back in case
|
||
|
you're curious.
|
||
|
|
||
|
98-01-17 malcolmh Added reboot handling for child installs. The child
|
||
|
propagates its reboot status to the parent. The
|
||
|
parent will treat a child's reboot status just as it does
|
||
|
it's own. If a child returns saying it wants to
|
||
|
reboot now then the parent will reboot now, otherwise the
|
||
|
parent will wait until it's done and then reboot.
|
||
|
|
||
|
TESTING: I mucked with the code for reboot handling
|
||
|
and suspended installs. Regressions is advised.
|
||
|
|
||
|
98-01-17 malcolmh Automation changes: Added MsiConman.DoInstall.
|
||
|
Changed return value for MsiEngine.Terminate to an
|
||
|
iesEnum. See help file for details.
|
||
|
|
||
|
98-01-16 bench Added support for the UpgradeCode property. The
|
||
|
UpgradeCode is a guid that represents a set of products.
|
||
|
This property isn't used anywhere yet but if it is
|
||
|
defined in the Property table it is registered in the
|
||
|
product's advertised information. Added the
|
||
|
UpgradeCode to ixoProductPublish and ixoProductUnpublish and
|
||
|
bumped the script version to 9 as a result.
|
||
|
|
||
|
98-01-16 tracyf To prevent bug 3885 from locking up the install
|
||
|
process, the palette switching code in the Handler has
|
||
|
been temporarily disabled. As soon as the palette bug
|
||
|
is resolved, this code will be turned back on. Until
|
||
|
the true bug is fixed, the side effect will be that
|
||
|
bitmaps rendered in Darwin dialogs may be drawn with
|
||
|
improper colors, if any other application changes the
|
||
|
standard system palette.
|
||
|
|
||
|
98-01-16 tracyf Implemented detection of components containing files
|
||
|
that are either patchable or compressed in the source
|
||
|
image. Any component containing files fitting these
|
||
|
categories are now prevented from being installed
|
||
|
RunFromSource (i.e. the SelectionManager's GetFeatureValidStates
|
||
|
routine will never return icaBitSource for these components).
|
||
|
|
||
|
98-01-16 mattwe Fixed admin installs to NOT install services or
|
||
|
place security descriptors.
|
||
|
|
||
|
98-01-16 mattwe Updated ServiceControl.Events to support Uninstall
|
||
|
only actions. Now, to install/uninstall a service,
|
||
|
you use the ServiceInstall table, and add an entry
|
||
|
to the ServiceControl table to delete it during
|
||
|
uninstall. This gives you full control over
|
||
|
services outside your install as well.
|
||
|
|
||
|
98-01-16 tracyf In an effort to give *Sequence table merging a
|
||
|
fighting chance, all built-in Darwin actions have been
|
||
|
given "recommended" sequence values, as demonstrated
|
||
|
in the new versions of template.msi and testdb.msi
|
||
|
(see the InstallSequence, AdvtSequence, and
|
||
|
AdminSequence tables). The convention to be documented
|
||
|
for authors is that Darwin reserves all numbers that are
|
||
|
multiples of 10 for built-in actions (the standard actions
|
||
|
have been renumbered using increments of 100, and any new
|
||
|
build-in actions in the future will be inserted in the
|
||
|
appropriate place using values such as 140, 850, etc).
|
||
|
Authors should use these values for all standard actions,
|
||
|
and numbers ending in non-zero digits for custom actions
|
||
|
(again, see testdb.msi for examples of custom action
|
||
|
sequencing). If these conventions are followed for all
|
||
|
products intending to merge databases, all sequence tables
|
||
|
should merge together without problems.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3716
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-15 bench Added the ixoDatabasePatch script operation for use in admin
|
||
|
install patching. The script version was bumped to 8 to
|
||
|
accomodate this addition.
|
||
|
|
||
|
98-01-15 bench Added support for patching admin installs. To patch an admin
|
||
|
install you may either
|
||
|
|
||
|
1) call msiexec.exe /p [patch package path] /n [admin database path]
|
||
|
|
||
|
2) call MsiApplyPatch(szPatch,szAdminDb,eNetworkImage,szCmdLine)
|
||
|
|
||
|
98-01-15 bench Added two arguments to MsiApplyPatch: szProduct and eInstallType.
|
||
|
These two arguments describe the product to be patched.
|
||
|
eInstallType defines the type of install
|
||
|
(network, local, advertised) and szProduct defines
|
||
|
the product code/descriptor/package path for the product.
|
||
|
Currently only the patching of network installs is supported.
|
||
|
|
||
|
98-01-15 bench Changed the package code (was product code) summary
|
||
|
information values for each released database
|
||
|
(testdb, schema, simple, msispy, etc..) to remove the
|
||
|
product version. This data is curently ignored by Darwin.
|
||
|
|
||
|
98-01-14 chetanp In order to allow the author to make permanent
|
||
|
components that do not have a file as their key path, the
|
||
|
"permanent" bit has been shifted to the
|
||
|
Component.Attributes column (the icaPermanent bit). We no longer
|
||
|
honour the iffPermanent bit from the File.Attributes
|
||
|
column for component permanency from the database
|
||
|
versions 23 onwards (we still honour the bit if you are
|
||
|
running an older database with the latest darwin).
|
||
|
|
||
|
98-01-14 chetanp The RunFromSource columns in Feature and Component
|
||
|
tables are now renamed to Attributes. This required
|
||
|
the database version to be bumped to 23. However we
|
||
|
still run with the old databases.
|
||
|
|
||
|
98-01-14 chetanp Changed SharedDll refcounting scheme for locally
|
||
|
installed component with key files.
|
||
|
Previously we used to refcount the key file of every
|
||
|
locally installed component (which has a file as the
|
||
|
key path) with the Shared Dll registry to ensure
|
||
|
sharing with non-darwin installations. This leads to
|
||
|
bloating of the registry since most of the components are
|
||
|
actually private to the product.
|
||
|
|
||
|
Now -
|
||
|
|
||
|
1. Whenever darwin installs a component locally, we
|
||
|
check to see if the key file of the component is
|
||
|
refcounted in the Shared Dll registry. If, yes we
|
||
|
increment the refcount to include ourselves (, otherwise we
|
||
|
do not refcount the component). We also make note of
|
||
|
whether we have refcounted the component (using a
|
||
|
special token within the key path registered in the
|
||
|
Darwin configuration information).
|
||
|
2. Whenever the product wishes to uninstall a local
|
||
|
component, we check if we have registered the
|
||
|
component in the Shared Dll registry. If yes, we decrement
|
||
|
the Shared Dll registry refcount for the key file. If
|
||
|
the refcount for the key file is greater then zero,
|
||
|
then we do not uninstall the component.
|
||
|
3. The above strategy breaks in the scenario where a
|
||
|
component is installed by Darwin, then by a
|
||
|
non-darwin installation and then the non-darwin installation
|
||
|
uninstalls. This will uninstall the component, since
|
||
|
there is no refcount for the Darwin install. This will
|
||
|
break the Darwin installed product (unless it is
|
||
|
using JIT and Darwin where we would simply reinstall the
|
||
|
component). To overcome this problem Darwin
|
||
|
provides the author with the "icaSharedDllRefCount" bit in
|
||
|
the Component.Attributes (RunFromSource) column. If
|
||
|
the author sets this bit for a component Darwin will
|
||
|
always refcount the component with the Shared Dll
|
||
|
registry irrespective of any existing recount.
|
||
|
|
||
|
|
||
|
98-01-14 malcolmh The FileName column of the RemoveFile table is now
|
||
|
nullable.
|
||
|
|
||
|
98-01-14 malcolmh Changed args to Conman.Registerfolder and
|
||
|
conman.IsFolderRemovable. See help/typelib for details.
|
||
|
|
||
|
98-01-14 malcolmh IxoFolderCreate and IxoFolderRemove no longer take a
|
||
|
component code. Instead they take a bool indicating
|
||
|
whether the folder is foreign (i.e. explicitly
|
||
|
authored to be created/removed). Bumped the script version.
|
||
|
|
||
|
98-01-14 t-robmen Created different _Summary.idt files for each type
|
||
|
of msispy.mis build possible [ship,debug,alpha] that
|
||
|
correctly reflect build type
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3714
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-14 t-robmen Discovered that some files were named incorrectly or
|
||
|
missing from %DARWIN%\src\tools\spy\idt
|
||
|
Removed: ActionText.idt, Directoy.idt, Extension.idt,
|
||
|
TestStyle.idt, Error.idt
|
||
|
Added: _Summary.idt, ActionTe.idt, AdvtSequ.idt,
|
||
|
ControlC.idt, ControlE.idt, Director.idt, EventMap.idt,
|
||
|
Extensio.idt, InstallS.idt, PublishC.idt,
|
||
|
RadioBut.idt, TextStyl.idt
|
||
|
|
||
|
98-01-13 malcolmh Fixed view object to support IS NULL and IS NOT NULL
|
||
|
on object fields.
|
||
|
|
||
|
98-01-13 malcolmh The RemoveFiles action now support removing
|
||
|
author-specific folders. These folders are specified in the
|
||
|
RemoveFiles table, just like files are, but with a
|
||
|
NULL FileName. The author-specific folders are removed
|
||
|
after the removal of author-specific files, and after
|
||
|
removal of the files installed by InstallFiles. A
|
||
|
folder is only removed if it is empty. The RemoveFiles
|
||
|
actions triggers the folder removal by generating an
|
||
|
ixoFolderRemove opcode.
|
||
|
|
||
|
98-01-13 malcolmh I think the full UI should work now. I've removed
|
||
|
GetComponentPath from the IMsiServer interface. It's
|
||
|
now a global function. I've re-enabled running the UI
|
||
|
in a separate thread. TESTING: GetComponentPath is no
|
||
|
longer a method of MsiServer or MsiConfigurationManager.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3713
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-13 johndelo Separate UI thread logic is disabled in this build only,
|
||
|
to allow fullUI with the service. However, problems will
|
||
|
exist with nested installs and custom actions. This has
|
||
|
been fixed and all will be operational in the next build.
|
||
|
|
||
|
98-01-12 johndelo Full UI does not work with the service registered for
|
||
|
this build, due to RPC problems. The UI runs in a single
|
||
|
thread which allows UI from nested installs and custom
|
||
|
actions but currently gives problems when the handler
|
||
|
calls to the engine which then does RPC to the service.
|
||
|
|
||
|
98-01-12 mattwe Internet download: Modified volume and path
|
||
|
objects with minimal URL support. These are meant to be
|
||
|
sources, not destinations, so most APIs will return
|
||
|
errors with a URL volume. Automation forthcoming for
|
||
|
new methods. Modem support and progress/cancel coming.
|
||
|
You can now specify a URL on the command line for a
|
||
|
package to install.
|
||
|
Example: msiexec /i
|
||
|
http://phoenix.csc.calpoly.edu/~mwetmore/testdb/testdb.msi
|
||
|
(Try it, it works! Currently only the "typical" install
|
||
|
source is actually up on that server.)
|
||
|
|
||
|
Should see no net change to functionality to non URL paths.
|
||
|
|
||
|
TESTING: watch those path/volume tests/benchmarks, please.
|
||
|
|
||
|
98-01-12 malcolmh Fixed bug 3814. Transforms are again being cached in
|
||
|
the user profile.
|
||
|
|
||
|
98-01-12 malcolmh Fixed bugs 3847, 3861, 3863, 3864, 3865. These were
|
||
|
all regressions caused by recent code changes, mostly
|
||
|
related to SQUIDs.
|
||
|
|
||
|
98-01-12 malcolmh Fixed bug 3829. The Engine.Initialize automation function
|
||
|
now defaults to iuiBasic if you don't specify a UI level
|
||
|
|
||
|
98-01-12 t-robmen Modified %DARWIN%\src\makefile to build
|
||
|
%DARWIN\data\msispy.msi - x86 ship
|
||
|
%DARWIN\data\msispyd.msi - x86 debug
|
||
|
%DARWIN\data\msispya.msi - alpha ship
|
||
|
|
||
|
98-01-12 tracyf Changed the name of the Directory_Configurable
|
||
|
column in the Feature table to "Directory_" (the old name
|
||
|
will still work for a while).
|
||
|
|
||
|
98-01-12 bench Updated MsiTran.Exe to accept validation bits used
|
||
|
to validate transforms before applying them. See
|
||
|
command line help for more info.
|
||
|
|
||
|
98-01-12 t-robmen Added %DARWIN%\src\tools\spy\idt directory and
|
||
|
subdirectories.
|
||
|
The included files are used to create the
|
||
|
installation database for MsiSpy (msispy.msi)
|
||
|
during the build process
|
||
|
|
||
|
|
||
|
98-01-12 bench Added support for a "package code" or rather allowing
|
||
|
a different guid in the summary info of a package than
|
||
|
the product code. The guid in the package is now the
|
||
|
"package code" and may not necessarily equal the product
|
||
|
code. Also, the product version is no longer appended to the
|
||
|
guid in the summary info. We now register the "package code"
|
||
|
under HKCR\Installer\Packages and for each product
|
||
|
register the code of the package the product was
|
||
|
installed from.
|
||
|
|
||
|
98-01-12 bench fixed bugs 3850-3852. We now properly handle validating
|
||
|
transforms that change the product code and product version.
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3709
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-08 johndelo Logging can be specified only via MsiEnableLog.
|
||
|
(MsiExec /L simply uses this API). The properties
|
||
|
LOGFILE and LOGMODE are no longer supported.
|
||
|
Logging is per-process, independent of the
|
||
|
particular package or engine instance. Provided
|
||
|
logging is enabled, the property LOGACTION allows a
|
||
|
particular set of actions to be logged for a product.
|
||
|
|
||
|
98-01-08 chetanp fixed Darwin bug (3803) that registers run-from
|
||
|
source file in the Shared Dll registry.
|
||
|
|
||
|
98-01-08 chetanp changed ixfFeaturePublish/ ixfFeatureUnpublish
|
||
|
opcode to have a separate Absent flag.
|
||
|
|
||
|
98-01-08 chetanp implemented GUID squishing. We now store all
|
||
|
(internal) Darwin GUIDs - Product Ids, Component Id, Patch
|
||
|
Id, Qualified Component Ids, and the GUIDs in Darwin
|
||
|
Descriptors as SQUIDs (GUIDs squished to 20
|
||
|
characters) in the registry. Though this should not affect any
|
||
|
of the API tests, this would mean that test/tool that
|
||
|
itself looks around for Darwin GUIDs in the registry
|
||
|
would fail. Use the RunScrpt.exe tool to Pack and Unpack
|
||
|
GUIDs via script, using the PackGuid and UnpackGuid functions.
|
||
|
|
||
|
98-01-08 malcolmh Implemented TransformsAtSource. Transforms are not
|
||
|
cached, but assumed to be at the source, if any of the
|
||
|
following conditions are true: 1) you set the
|
||
|
TRANSFORMSATSOURCE property, 2) you specify an '@' at the
|
||
|
beginning of your list of transforms, or 3) when
|
||
|
executing the script we see that you have a
|
||
|
TransformsAtSource policy value set to 1.
|
||
|
|
||
|
98-01-08 malcolmh msiexec /P is now used to invoke a patch. msiexec /I
|
||
|
is now used to install. /X and /I will now accept
|
||
|
product codes, making the previous /T and /C obsolete.
|
||
|
/T is now used for transforms and /C has been
|
||
|
removed.
|
||
|
|
||
|
98-01-08 malcolmh The /A (Advertise) parameter to msiexec now takes a
|
||
|
Transforms list and a lanGuage, specified with the /T
|
||
|
and /G switches, respectively.
|
||
|
|
||
|
98-01-07 bench Renamed the AdminInstallFinalize action to
|
||
|
InstallAdminPackage. This is because the action should
|
||
|
come before InstallFiles, so we didn't want to give the
|
||
|
notion that the action should "finalize" anything.
|
||
|
The AdminInstallFinalize action will stay around for 30 days
|
||
|
and currently just calls the InstallAdminPackage action.
|
||
|
Also updated testdb.msi, template.msi, etc...
|
||
|
|
||
|
98-01-06 malcolmh Added /L as a switch to msiexec. This sets the log mode
|
||
|
by calling MsiEnableLog. Syntax: /L[<logmodes>] <log file>
|
||
|
|
||
|
98-01-06 malcolmh Added INSTALLPROPERTY_VOLUMEPREFERENCE to the list
|
||
|
of properties exposed by MsiGetProductInfo.
|
||
|
|
||
|
98-01-06 malcolmh The product code in the summary info stream *must* match
|
||
|
the one in the property table or you won't be able
|
||
|
to run maintenance mode. This will remain true until
|
||
|
we introduce the notion of a "package code".
|
||
|
|
||
|
98-01-06 malcolmh The script version has been bumped to 6 as a result of
|
||
|
source management opcodes changes.
|
||
|
|
||
|
98-01-06 malcolmh We now cache an MSI to the temp dir whenever we realize
|
||
|
that the database we're running from isn't the cached db
|
||
|
for the product.
|
||
|
|
||
|
98-01-06 malcolmh (dev concern only) IPROPNAME_ORIGINALDATABASE now contains
|
||
|
the launched-from database in maintenance-mode if there is
|
||
|
one (previously it contained the cached db).
|
||
|
|
||
|
98-01-06 malcolmh MsiGetComponentPath now returns the actual
|
||
|
installstate for installed components (INSTALLSTATE_LOCAL/SOURCE)
|
||
|
instead of INSTALLSTATE_DEFAULT.
|
||
|
|
||
|
98-01-06 malcolmh Removed 'advertise' section from validation and changed msival
|
||
|
accordingly. The schema's _InstallSequence table has been changed
|
||
|
to reflect this.
|
||
|
|
||
|
98-01-06 malcolmh The minimum disk ID in the media table has been changed from 0
|
||
|
to 1. Validation has been updated to reflect this.
|
||
|
|
||
|
98-01-06 malcolmh Moved PublishProduct, PublishComponents, PublishFeatures,
|
||
|
RegisterProduct to just before ExecuteFinalize.
|
||
|
|
||
|
98-01-06 malcolmh The DiskPrompt property is now used as a template. For each disk
|
||
|
the prompt from the media table is inserted into the DiskPrompt
|
||
|
property's [1] parameter. The result is used in the
|
||
|
"Please insert..." string that's in the error table.
|
||
|
|
||
|
98-01-06 malcolmh Source management:
|
||
|
|
||
|
- The UI's RFS icons now represent the actual source type
|
||
|
during first-run and the type of the LastUsedSource in
|
||
|
maintenance-mode.
|
||
|
|
||
|
- We now publish the source list only when we publish
|
||
|
the product (i.e. at advertise time or first-run if
|
||
|
no advertisement has taken place)
|
||
|
|
||
|
- When we publish the source list we also now attempt
|
||
|
to divine the media package path for the MSI at this
|
||
|
time if we're running from media and the
|
||
|
MediaPackagePath property is not set.
|
||
|
|
||
|
- When we publish the source list we implictly add the
|
||
|
source you're running from as a source for the product.
|
||
|
|
||
|
- If we're not advertising then we if we've resolved the
|
||
|
source (i.e. SOURCEDIR is set) then we set the resolved
|
||
|
source as the Last Used source for the product.
|
||
|
|
||
|
- We bypass source resolution if we're not running from
|
||
|
the cached database. This is because the source we've been
|
||
|
launched from has be a valid source, so we use it.
|
||
|
|
||
|
- Run-from-source components are now source resilient. We'll
|
||
|
find a valid source for them whenever their path is need.
|
||
|
We cache the most recent source in-memory, and we try
|
||
|
this source first, followed by the raw LastUsedSource,
|
||
|
before we fall back to our standard source resolution mechanism.
|
||
|
|
||
|
- The ixfSourceListMediaPublish opcode has been removed. Its
|
||
|
functionality is now in ixfSourceListPublish.
|
||
|
|
||
|
- The ixfSourceListRegisterLastUsed opcode has been added.
|
||
|
See msiauto.hlp.
|
||
|
|
||
|
- The ixfSourceListPublish opcode's arguments have changed
|
||
|
to accommodate media sources. See msiauto.hlp.
|
||
|
|
||
|
98-01-06 malcolmh ixfDatabaseCache now first removes any existing cached package
|
||
|
for the product before it caching the one given to it.
|
||
|
|
||
|
98-01-06 malcolmh Component registration changes:
|
||
|
|
||
|
- We no longer have an explicit state key for the component
|
||
|
state. We now derive this from the key file format.
|
||
|
|
||
|
- Run-from-source component format for key files and folders
|
||
|
has changed. We now store two digits followed by the relative
|
||
|
path of the component from the root of the source. The
|
||
|
two digits indicate the disk ID of the disk containing files
|
||
|
for this component.
|
||
|
|
||
|
- The component format for registry keys has changed.
|
||
|
We now store two digits followed by a colon followed by the
|
||
|
subkey. The two digits indicate the hive. For run-from-source
|
||
|
components we offset the hive by 50. For example,
|
||
|
CLASSES_ROOT, which is 0, would be stored as "00" for a local
|
||
|
component and "50" for a run-from-source component. We remove
|
||
|
the offset when returning the regkey.
|
||
|
|
||
|
- conman.RegisterComponent now takes a disk ID
|
||
|
|
||
|
- ixfComponentRegister now takes a disk ID
|
||
|
|
||
|
98-01-06 malcolmh Source management: changes were made in the way we
|
||
|
register sources:
|
||
|
|
||
|
- Under the SourceList key:
|
||
|
- the LastUsedSource value now has a trailing
|
||
|
backslash
|
||
|
- we now have a LastUsedIndex and LastUsedType
|
||
|
|
||
|
- Under the Net key
|
||
|
- we now use numbers instead of letters for
|
||
|
the indexes
|
||
|
- we now store a single form of net paths (no
|
||
|
more drive letter & UNC form)
|
||
|
|
||
|
- Under the Media key
|
||
|
- we now have a DiskPrompt value
|
||
|
|
||
|
-----------------------------
|
||
|
Release 0.10.00.3706
|
||
|
-----------------------------
|
||
|
|
||
|
98-01-05 bench Added UNICODE Darwin to \\united\darwin drops. The following
|
||
|
folders were added which contain the same files as their
|
||
|
ANSI counterparts:
|
||
|
|
||
|
DEBUGW
|
||
|
SHIPW
|
||
|
SHIPSYMW
|
||
|
LEGOW
|
||
|
|
||
|
98-01-02 chetanp Added support for registering and managing disabled
|
||
|
components in Darwin.
|
||
|
Following is the description of Darwin's behaviour in
|
||
|
handling disabled components.
|
||
|
|
||
|
1. A Darwin component gets disabled when the
|
||
|
corresponding Component.Condition column evaluates to
|
||
|
FALSE.
|
||
|
2. A disabled component is registered with the
|
||
|
configuration manager with an empty path and a state of
|
||
|
INSTALLSTATE_NOTUSED (which is defined as a negative
|
||
|
value in the INSTALLSTATE enum) when a feature that
|
||
|
contains that component is selected for install.
|
||
|
3. A feature is published with all the components it
|
||
|
comprises of, irrespective of whether the individual
|
||
|
components are enabled or not. This allows a feature
|
||
|
list to be independant of the machine, since the
|
||
|
result of evaluating the Component.Condition column may
|
||
|
vary from machine to machine.
|
||
|
4. The MsiQueryFeatureState API treats any
|
||
|
constituent disabled components (in state INSTALLSTATE_NOTUSED)
|
||
|
the same as INSTALLSTATE_LOCAL. This allows the
|
||
|
feature state to be determined by the install states of
|
||
|
enabled components.
|
||
|
5. The MsiGetComponentPath API returns the true
|
||
|
install state (INSTALLSTATE_NOTUSED) for a disabled
|
||
|
component.
|
||
|
6. The MsiProvideComponent, effectively ignores all
|
||
|
disabled components (of that or the parent features)
|
||
|
unless it is requesting a disabled component itself,
|
||
|
in which case the return is an error -
|
||
|
ERROR_INSTALL_NOTUSED.
|