| <?xml version="1.0" encoding="utf-8"?> |
| <!-- |
| **************************************************************************************************** |
| wix.ca.targets |
| |
| 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. |
| |
| Copyright (c) Microsoft Corporation. All rights reserved. |
| **************************************************************************************************** |
| --> |
| <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)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath> |
| <WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\wix.ca.targets</WixCATargetsPath> |
| <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\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.5</WixInstallRegKey> |
| <WixInstallRegKeyWow64>SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5</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> |