For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script and environment variables:
- set PYTHON=<path to Python 2.7>
+ set PYTHON=<path to Python 2.7 or 3.4>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Mercurial (hg.exe)>;
<path to HTML Help Compiler (hhc.exe)>;%PATH%
For an official release, the installer should be built with the
Tools/msi/buildrelease.bat script:
- set PYTHON=<path to Python 2.7>
+ set PYTHON=<path to Python 2.7 or 3.4>
set SPHINXBUILD=<path to sphinx-build.exe>
set PATH=<path to Mercurial (hg.exe)>;
<path to HTML Help Compiler (hhc.exe)>;%PATH%
Every package should reference this property to include upgrade
information.
+ OptionalFeature (Component)
+ Packages that may be enabled or disabled should reference this component
+ and have an OPTIONAL_FEATURES entry in the bootstrap application to
+ properly handle Modify and Upgrade.
+
The .wxl_template file is specially handled by the build system for this
project to perform {{substitutions}} as defined in msi.targets. They
should be included in projects as <WxlTemplate> items, where .wxl files
.\python3x.dll The core interpreter
.\python3.dll The stable ABI reference
-.\appcrt140.dll Microsoft Visual C Runtime
-.\desktopcrt140.dll Microsoft Visual C Runtime
-.\vcruntime140.dll Microsoft Visual C Runtime
When installed for all users, the following files are installed to
"%SystemRoot%" (typically "C:\Windows") to ensure they are always
available on PATH. (See Launching Python below.) For the current user,
-they are installed in the Python install directory.
+they are installed in "%LocalAppData%\Programs\Python\PyLauncher".
.\py[w].exe PEP 397 launcher
When the core Python executables are installed, a key "InstallPath" is
created within the root key with its default value set to the
-executable's install directory. Within this key, a key "InstallGroup" is
-created with its default value set to the product name "Python 3.X".
+executable's install directory. A value named "ExecutablePath" is added
+with the full path to the main Python interpreter, and a key
+"InstallGroup" is created with its default value set to the product
+name "Python 3.X".
When the Python standard library is installed, a key "PythonPath" is
created within the root key with its default value set to the full path
<Package Include="..\tools\tools*.wixproj" />
</ItemGroup>
+ <PropertyGroup>
+ <BuildPackagesTargets>Build</BuildPackagesTargets>
+ </PropertyGroup>
+
+ <Target Name="_SetRebuildTarget" BeforeTargets="BeforeRebuild">
+ <PropertyGroup>
+ <BuildPackagesTargets>Rebuild</BuildPackagesTargets>
+ </PropertyGroup>
+ </Target>
+
<Target Name="BuildPackages" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
- <MSBuild Projects="@(Package)" BuildInParallel="true" />
+ <MSBuild Projects="@(Package)" Targets="$(BuildPackagesTargets)" BuildInParallel="true" />
</Target>
<Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
<CRTRedist Condition="!Exists($(CRTRedist))"></CRTRedist>
<DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
- <RevisionNumber>$(ReleaseLevelNumber)</RevisionNumber>
- <RevisionNumber Condition="!$(BuildForRelease)">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+ <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0</InstallerVersion>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="!$(BuildForRelease)">
+ <RevisionNumber Condition="'$(RevisionNumber)' == ''">$([System.Math]::Floor($([System.DateTime]::Now.Subtract($([System.DateTime]::new(2001, 1, 1))).TotalDays)))</RevisionNumber>
+ <PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)dev$(RevisionNumber)</PythonVersion>
+ <InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(RevisionNumber).0</InstallerVersion>
</PropertyGroup>
<PropertyGroup>
<Bitness Condition="$(Platform) == 'x64'">64-bit</Bitness>
<DefineConstants>
$(DefineConstants);
- Version=$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0;
+ Version=$(InstallerVersion);
ShortVersion=$(MajorVersionNumber).$(MinorVersionNumber);
LongVersion=$(PythonVersion);
MajorVersionNumber=$(MajorVersionNumber);