| <?xml version="1.0" encoding="utf-8" ?> | |
| <!-- | |
| <copyright file="wix.ca.targets" company="Outercurve Foundation"> | |
| Copyright (c) 2004, Outercurve Foundation. | |
| This software is released under Microsoft Reciprocal License (MS-RL). | |
| The license and further copyright text can be found in the file | |
| LICENSE.TXT at the root directory of the distribution. | |
| </copyright> | |
| <remarks> | |
| WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have | |
| created a backup copy. Incorrect changes to this file will make it | |
| impossible to load or build your projects from the command-line or the IDE. | |
| This file defines properties used in the post-build process for WiX/DTF managed custom action projects. | |
| </remarks> | |
| --> | |
| <Project | |
| xmlns="http://schemas.microsoft.com/developer/msbuild/2003" | |
| InitialTargets="_SetDefaultPathValues"> | |
| <Import Project="$(CustomBeforeWixCATargets)" Condition=" '$(CustomBeforeWixCATargets)' != '' and Exists('$(CustomBeforeWixCATargets)')" /> | |
| <PropertyGroup> | |
| <WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.ca.targets</WixCATargetsPath> | |
| <WixTasksPath Condition=" '$(WixTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\..\WiX Toolset v3.8\bin\WixTasks.dll</WixTasksPath> | |
| <WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\wix.ca.targets</WixCATargetsPath> | |
| <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\..\WiX Toolset v3.8\bin\WixTasks.dll</WixTasksPath> | |
| <TargetCAFileName Condition=" '$(TargetCAFileName)' == '' ">$(TargetName).CA$(TargetExt)</TargetCAFileName> | |
| </PropertyGroup> | |
| <UsingTask TaskName="ReadRegistry" AssemblyFile="$(WixTasksPath)"/> | |
| <!-- | |
| ================================================================================================== | |
| _SetDefaultPathValues | |
| Gets the default values of some paths from the registry. | |
| [OUT] | |
| $(WixExtDir) - Default Wix Extension Directory | |
| $(WixToolPath) - Default Wix Tool install folder | |
| ================================================================================================== | |
| --> | |
| <PropertyGroup> | |
| <WixInstallRegKey>SOFTWARE\Microsoft\Windows Installer XML\3.8</WixInstallRegKey> | |
| <WixInstallRegKeyWow64>SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.8</WixInstallRegKeyWow64> | |
| </PropertyGroup> | |
| <Target | |
| Name="_SetDefaultPathValues"> | |
| <ReadRegistry | |
| Hive="LocalMachine" | |
| Key="$(WixInstallRegKey)" | |
| Name="InstallRoot" | |
| FailIfMissing="false" | |
| Condition=" '$(WixToolPath)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="WixToolPath" /> | |
| </ReadRegistry> | |
| <!-- If we didn't find the first registry path, assume we're in a 64bit process. --> | |
| <ReadRegistry | |
| Hive="LocalMachine" | |
| Key="$(WixInstallRegKeyWow64)" | |
| Name="InstallRoot" | |
| FailIfMissing="false" | |
| Condition=" '$(WixToolPath)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="WixToolPath" /> | |
| </ReadRegistry> | |
| <CreateProperty Value="$(WixToolPath)..\sdk\" Condition=" '$(WixSdkPath)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="WixSdkPath" /> | |
| </CreateProperty> | |
| <CreateProperty Value="$(WixSdkPath)x86\" Condition=" '$(WixSdkX86Path)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="WixSdkX86Path" /> | |
| </CreateProperty> | |
| <CreateProperty Value="$(WixSdkPath)x64\" Condition=" '$(WixSdkX64Path)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="WixSdkX64Path" /> | |
| </CreateProperty> | |
| <CreateProperty Value="$(WixSdkPath)MakeSfxCA.exe" Condition=" '$(MakeSfxCA)' == '' "> | |
| <Output TaskParameter="Value" PropertyName="MakeSfxCA" /> | |
| </CreateProperty> | |
| <CreateProperty Value="$(WixSdkX86Path)SfxCA.dll" Condition=" '$(SfxCADll)' == '' and '$(Platform)' != 'x64'"> | |
| <Output TaskParameter="Value" PropertyName="SfxCADll" /> | |
| </CreateProperty> | |
| <CreateProperty Value="$(WixSdkX64Path)SfxCA.dll" Condition=" '$(SfxCADll)' == '' and '$(Platform)' == 'x64'"> | |
| <Output TaskParameter="Value" PropertyName="SfxCADll" /> | |
| </CreateProperty> | |
| </Target> | |
| <!-- | |
| ================================================================================================== | |
| PackCustomAction | |
| Creates an MSI managed custom action package that includes the custom action assembly, | |
| local assembly dependencies, and project content files. | |
| [IN] | |
| @(IntermediateAssembly) - Managed custom action assembly. | |
| @(Content) - Project items of type Content will be included in the package. | |
| $(CustomActionContents) - Optional space-delimited list of additional files to include. | |
| [OUT] | |
| $(IntermediateOutputPath)$(TargetCAFileName) - Managed custom action package with unmanaged stub. | |
| ================================================================================================== | |
| --> | |
| <Target Name="PackCustomAction" | |
| Inputs="@(IntermediateAssembly);@(Content);$(CustomActionContents)" | |
| Outputs="$(IntermediateOutputPath)$(TargetCAFileName)"> | |
| <!-- Find all referenced items marked CopyLocal, but exclude non-binary files. --> | |
| <CreateItem | |
| Include="@(ReferenceCopyLocalPaths)" | |
| Condition=" '%(ReferenceCopyLocalPaths.extension)' == '.dll' or '%(ReferenceCopyLocalPaths.extension)' == '.exe' "> | |
| <Output TaskParameter="Include" ItemName="CustomActionReferenceContents"/> | |
| </CreateItem> | |
| <!-- | |
| Items to include in the CA package: | |
| - Reference assemblies marked CopyLocal | |
| - Project items of type Content | |
| - Additional items in the CustomActionContents property | |
| --> | |
| <CreateProperty Value="@(CustomActionReferenceContents);@(Content->'%(FullPath)');$(CustomActionContents)"> | |
| <Output TaskParameter="Value" PropertyName="CustomActionContents" /> | |
| </CreateProperty> | |
| <CreateItem Include="@(IntermediateAssembly->'%(FullPath)')"> | |
| <Output TaskParameter="Include" ItemName="IntermediateCAAssembly" /> | |
| </CreateItem> | |
| <CreateItem Include="@(IntermediateAssembly->'%(RootDir)%(Directory)$(TargetCAFileName)')"> | |
| <Output TaskParameter="Include" ItemName="IntermediateCAPackage" /> | |
| </CreateItem> | |
| <!-- Run the MakeSfxCA.exe CA packaging tool. --> | |
| <Exec Command='"$(MakeSfxCA)" "@(IntermediateCAPackage)" "$(SfxCADll)" "@(IntermediateCAAssembly)" "$(CustomActionContents)"' | |
| WorkingDirectory="$(ProjectDir)" /> | |
| <!-- Add modules to be copied to output dir. --> | |
| <CreateItem Include="@(AddModules);@(IntermediateCAPackage)"> | |
| <Output TaskParameter="Include" ItemName="AddModules" /> | |
| </CreateItem> | |
| </Target> | |
| <!-- | |
| ================================================================================================== | |
| CleanCustomAction | |
| Cleans the .CA.dll binary created by the PackCustomAction target. | |
| ================================================================================================== | |
| --> | |
| <Target Name="CleanCustomAction"> | |
| <Delete Files="$(IntermediateOutputPath)$(TargetCAFileName)" | |
| TreatErrorsAsWarnings="true" /> | |
| </Target> | |
| <!-- | |
| ================================================================================================== | |
| AfterCompile (redefinition) | |
| Calls the PackCustomAction target after compiling. | |
| Overrides the empty AfterCompile target from Microsoft.Common.targets. | |
| ================================================================================================== | |
| --> | |
| <Target Name="AfterCompile" | |
| DependsOnTargets="PackCustomAction" /> | |
| <!-- | |
| ================================================================================================== | |
| BeforeClean (redefinition) | |
| Calls the CleanCustomAction target before cleaning. | |
| Overrides the empty AfterCompile target from Microsoft.Common.targets. | |
| ================================================================================================== | |
| --> | |
| <Target Name="BeforeClean" | |
| DependsOnTargets="CleanCustomAction" /> | |
| <Import Project="$(CustomAfterWixCATargets)" Condition=" '$(CustomAfterWixCATargets)' != '' and Exists('$(CustomAfterWixCATargets)')" /> | |
| </Project> |