From f116a039fdcf8611ecbf0796d155cb836b70b90a Mon Sep 17 00:00:00 2001 From: Josh Kingery <joshking@microsoft.com> Date: Thu, 19 Apr 2018 16:09:40 -0700 Subject: [PATCH 1/4] wip --- .../ILRepack.Lib.MSBuild.Task.csproj | 4 ++++ .../ILRepack.Lib.MSBuild.Task.props | 14 +++++++++++ .../ILRepack.Lib.MSBuild.Task.targets | 23 ++++++++++++------- 3 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.csproj b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.csproj index 3b80d3c..6cfa0e2 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.csproj +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.csproj @@ -71,6 +71,10 @@ <SubType>Designer</SubType> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> + <None Include="ILRepack.Lib.MSBuild.Task.props"> + <SubType>Designer</SubType> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </None> <None Include="packages.config"> <SubType>Designer</SubType> </None> diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props new file mode 100644 index 0000000..17df8ef --- /dev/null +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ILRepackCustomPropsImport Condition=" '$(ILRepackCustomPropsImport)' == '' ">$(MSBuildProjectDirectory)\ILRepack.Config.props</ILRepackCustomPropsImport> + <ILRepackCustomTargetsImport Condition=" '$(ILRepackCustomTargetsImport)' == '' ">$(MSBuildProjectDirectory)\ILRepack.Config.props</ILRepackCustomTargetsImport> + </PropertyGroup> + <Import Project="$(ILRepackCustomPropsImport)" Condition="Exists('$(ILRepackCustomPropsImport)')" /> + <PropertyGroup> + <ILRepackDependsOn Condition=" '$(ILRepackDependsOn)' == '' ">ILRepackGetInputAssemblies</ILRepackDependsOn> + <ILRepackAfterTargets Condition=" '$(ILRepackAfterTargets)' == '' And '$(Configuration)' == 'Release' ">Build</ILRepackAfterTargets> + <ILRepackBeforeTargets Condition=" '$(ILRepackBeforeTargets)' == '' "></ILRepackBeforeTargets> + <CleanReferenceCopyLocalPathsAfterTargets Condition=" '$(CleanReferenceCopyLocalPathsAfterTargets)' == '' And '$(Configuration)' == 'Release' And '$(ClearOutputDirectory)' != 'False' ">ILRepack</CleanReferenceCopyLocalPathsAfterTargets> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets index e3222f2..739dafb 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + </PropertyGroup> <Import Project="$(ProjectDir)ILRepack.Config.props" Condition="Exists('$(ProjectDir)ILRepack.Config.props')" /> <Choose> <When Condition="'$(ILRepackTargetsFile)' == ''"> @@ -10,26 +12,29 @@ </Choose> <UsingTask AssemblyFile="$(MSBuildThisFileDirectory)ILRepack.Lib.MSBuild.Task.dll" TaskName="ILRepack" /> <Import Project="$(ILRepackTargetsFile)" Condition="Exists('$(ILRepackTargetsFile)')" /> - <Target Name="ILRepack" AfterTargets="Build" Condition="$(Configuration.Contains('Release')) and !Exists('$(ILRepackTargetsFile)')"> + <Target Name="ILRepackGetInputAssemblies"> <ItemGroup> - <InputAssemblies Include="$(OutputPath)$(TargetName)$(TargetExt)"/> - <InputAssemblies Include="$(OutputPath)*.dll" Exclude="$(OutputPath)$(TargetName)$(TargetExt)"/> - </ItemGroup> - + <ILRepackInputAssemblies Include="$(OutputPath)$(TargetName)$(TargetExt)"/> + <ILRepackInputAssemblies Include="$(OutputPath)*.dll" Exclude="$(OutputPath)$(TargetName)$(TargetExt)"/> + <ILRepackInputAssemblies Remove="@(ILRepackAssembliesToIgnore)"/> + </ItemGroup> + </Target> + <Target Name="ILRepack" AfterTargets="$(ILRepackAfterTargets)" DependsOnTargets="$(ILRepackDependsOn)" BeforeTargets="$(ILRepackBeforeTargets)" Condition=" !Exists('$(ILRepackTargetsFile)') "> <ILRepack Parallel="true" DebugInfo="true" AllowDuplicateResources="false" - InputAssemblies="@(InputAssemblies)" + InputAssemblies="@(ILRepackInputAssemblies)" TargetKind="SameAsPrimaryAssembly" KeyFile="$(KeyFile)" OutputFile="$(OutputPath)$(TargetName)$(TargetExt)" + LibraryPath="@(ILRepackLibraryPath)" /> </Target> <Target - AfterTargets="ILRepack" + AfterTargets="$(CleanReferenceCopyLocalPathsAfterTargets)" Name="CleanReferenceCopyLocalPaths" - Condition="$(Configuration.Contains('Release')) and !Exists('$(ILRepackTargetsFile)') and '$(ClearOutputDirectory)' != 'False'"> + Condition=" !Exists('$(ILRepackTargetsFile)') "> <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" /> <ItemGroup> <Directories Include="$([System.IO.Directory]::GetDirectories('$(OutDir)%(DestinationSubDirectory)', '*', System.IO.SearchOption.AllDirectories))" /> @@ -39,4 +44,6 @@ </ItemGroup> <RemoveDir Directories="@(Directories)" Condition="%(Files)=='0'" /> </Target> + + <Import Project="$(ILRepackCustomTargetImport)" Condition="Exists('$(ILRepackCustomTargetImport)')" /> </Project> \ No newline at end of file From f559be1c1a35be30bdc14fad30a2065f93fba31a Mon Sep 17 00:00:00 2001 From: Josh Kingery <joshking@microsoft.com> Date: Fri, 27 Apr 2018 11:34:32 -0700 Subject: [PATCH 2/4] fix white space --- ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props index 17df8ef..8c89c3f 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.props @@ -9,6 +9,6 @@ <ILRepackDependsOn Condition=" '$(ILRepackDependsOn)' == '' ">ILRepackGetInputAssemblies</ILRepackDependsOn> <ILRepackAfterTargets Condition=" '$(ILRepackAfterTargets)' == '' And '$(Configuration)' == 'Release' ">Build</ILRepackAfterTargets> <ILRepackBeforeTargets Condition=" '$(ILRepackBeforeTargets)' == '' "></ILRepackBeforeTargets> - <CleanReferenceCopyLocalPathsAfterTargets Condition=" '$(CleanReferenceCopyLocalPathsAfterTargets)' == '' And '$(Configuration)' == 'Release' And '$(ClearOutputDirectory)' != 'False' ">ILRepack</CleanReferenceCopyLocalPathsAfterTargets> + <CleanReferenceCopyLocalPathsAfterTargets Condition=" '$(CleanReferenceCopyLocalPathsAfterTargets)' == '' And '$(Configuration)' == 'Release' And '$(ClearOutputDirectory)' != 'False' ">ILRepack</CleanReferenceCopyLocalPathsAfterTargets> </PropertyGroup> </Project> \ No newline at end of file From cd9a4b6453750f0bd97e7767d75397004e7d254e Mon Sep 17 00:00:00 2001 From: Josh Kingery <joshking@microsoft.com> Date: Fri, 27 Apr 2018 11:36:07 -0700 Subject: [PATCH 3/4] remove extra propertygroup --- ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets | 2 -- 1 file changed, 2 deletions(-) diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets index 739dafb..bde0501 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - </PropertyGroup> <Import Project="$(ProjectDir)ILRepack.Config.props" Condition="Exists('$(ProjectDir)ILRepack.Config.props')" /> <Choose> <When Condition="'$(ILRepackTargetsFile)' == ''"> From e56d3e7e5622266b4563f03481df1b844ed402bc Mon Sep 17 00:00:00 2001 From: Josh Kingery <joshking@microsoft.com> Date: Fri, 27 Apr 2018 15:33:14 -0700 Subject: [PATCH 4/4] allow target to be remapped --- .../ILRepack.Lib.MSBuild.Task.targets | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets index bde0501..8192cf5 100644 --- a/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets +++ b/ILRepack.Lib.MSBuild.Task/ILRepack.Lib.MSBuild.Task.targets @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + </PropertyGroup> <Import Project="$(ProjectDir)ILRepack.Config.props" Condition="Exists('$(ProjectDir)ILRepack.Config.props')" /> <Choose> <When Condition="'$(ILRepackTargetsFile)' == ''"> @@ -18,6 +20,10 @@ </ItemGroup> </Target> <Target Name="ILRepack" AfterTargets="$(ILRepackAfterTargets)" DependsOnTargets="$(ILRepackDependsOn)" BeforeTargets="$(ILRepackBeforeTargets)" Condition=" !Exists('$(ILRepackTargetsFile)') "> + <PropertyGroup> + <ILRepackOutputAssembly Condition=" '$(ILRepackOutputAssembly)' == '' ">$(OutputPath)$(TargetName)$(TargetExt)</ILRepackOutputAssembly> + </PropertyGroup> + <MakeDir Directories="$([System.IO.Path]::GetDirectoryName($(ILRepackOutputAssembly)))"/> <ILRepack Parallel="true" DebugInfo="true" @@ -25,7 +31,7 @@ InputAssemblies="@(ILRepackInputAssemblies)" TargetKind="SameAsPrimaryAssembly" KeyFile="$(KeyFile)" - OutputFile="$(OutputPath)$(TargetName)$(TargetExt)" + OutputFile="$(ILRepackOutputAssembly)" LibraryPath="@(ILRepackLibraryPath)" /> </Target>