To perform the one-time configuration the WiX build requires:
MSBuild tools\OneTimeWixBuildInitialization.proj
. This project registers the WiX assemblies for strong-name verification skipping. Doing so lets you build and run WiX without strong-name signing the WiX assemblies.MSBuild.exe
.
"%ProgramFiles%\MSBuild\12.0\Bin\MSBuild.exe"
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /p:VisualStudioVersion="11.0"
VS201X x86 Native Tools Command Prompt
shortcut from your Visual Studio installation, you can just run MSBuild
without worrying about the path or VisualStudioVersion
property.The src
directory at the root of the WiX repository contains a number of Visual Studio .sln
files you can use to build different subsets of WiX from inside Visual Studio. Before you can do so, however, first run a full build of WiX from the command line as discussed above.
The WiX build system is smart enough to skip building things for which you don't have the prerequisites. For example, if you don't have Visual Studio 2010 installed, the 2010 versions of the WiX native SDK libraries. However, to build the entire WiX Toolset, you need all versions of the follow prerequisites:
Strong-name signing a WiX build lets it be used on a machine other than the one used to build WiX. Creating an "official unofficial" WiX build requires all the above prerequisites; you can't skip parts of an official build. In general, it's a lot easier to submit a pull request and get the next interim build of WiX.
To create a build that can be installed on different machines, create a new strong name key pair and point OFFICIAL_WIX_BUILD to it:
sn -k wix.snk
sn -p wix.snk wix.pub
sn -tp wix.pub
Copy the public key and add new InternalsVisibleTo attributes in src\Votive\votive2010\vssdk\AssemblyInfo.cs
. Then run the build:
msbuild /p:Configuration=Release /p:OFFICIAL_WIX_BUILD=C:\wix.snk