Comments (8)
Current workaround:
put this line after nuget reference
<Target AfterTargets="AfterBuild" Name="CleanReferenceCopyLocalPaths" />
It would be better if you rename AfterBuild
target in ILRepack.Lib.MSBuild.Task.targets
from ilrepack.lib.msbuild.task.
If I replace the current targets file with file discussed in this comment then users can provide their own targets file for ILRepack.
from ilrepack.lib.msbuild.task.
This solution doesn't work for me. In our project we use one target for two projects and I can't put ILRepack.targets near project file.
from ilrepack.lib.msbuild.task.
@biz0n Is there any reason to not put the targets near project file?
from ilrepack.lib.msbuild.task.
yes, because we use one target for two project
Sample structure of our projects:
../GooglePlay/GooglePlay.csproj
../Amazon/Amazon.csproj
../AndroidShared/ILRepack.targets
from ilrepack.lib.msbuild.task.
@biz0n What if I provide configuration file where you can define where your targets file resides. You just need to add configuration file in each project and it will use it.
from ilrepack.lib.msbuild.task.
You can check property. Something like Condition="'$(IgnoreDefaultILRepackBehavior)' == 'true'"
from ilrepack.lib.msbuild.task.
@biz0n Already created targets file for that. Here it is.
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(ProjectDir)ILRepack.Config.props" Condition="Exists('$(ProjectDir)ILRepack.Config.props')" />
<Choose>
<When Condition="'$(ILRepackTargetsFile)' == ''">
<PropertyGroup>
<ILRepackTargetsFile>$(ProjectDir)ILRepack.targets</ILRepackTargetsFile>
</PropertyGroup>
</When>
</Choose>
<UsingTask AssemblyFile="$(MSBuildThisFileDirectory)ILRepack.Lib.MSBuild.Task.dll" TaskName="ILRepack" />
<Import Project="$(ILRepackTargetsFile)" Condition="'$(Configuration)' == 'Release' and Exists('$(ILRepackTargetsFile)')" />
<Target Name="ILRepack" AfterTargets="Build" Condition="'$(Configuration)' == 'Release' and !Exists('$(ILRepackTargetsFile)')">
<ItemGroup>
<InputAssemblies Include="$(OutputPath)$(TargetName)$(TargetExt)"/>
<InputAssemblies Include="$(OutputPath)*.dll" Exclude="$(OutputPath)$(TargetName)$(TargetExt)"/>
</ItemGroup>
<ILRepack
Parallel="true"
DebugInfo="true"
AllowDuplicateResources="false"
InputAssemblies="@(InputAssemblies)"
TargetKind="SameAsPrimaryAssembly"
KeyFile="$(KeyFile)"
OutputFile="$(OutputPath)$(TargetName)$(TargetExt)"
/>
</Target>
<Target
AfterTargets="ILRepack"
Name="CleanReferenceCopyLocalPaths"
Condition="'$(Configuration)' == 'Release' and !Exists('$(ILRepackTargetsFile)') and '$(ClearOutputDirectory)' != 'False'">
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
<ItemGroup>
<Directories Include="$([System.IO.Directory]::GetDirectories('$(OutDir)%(DestinationSubDirectory)', '*', System.IO.SearchOption.AllDirectories))" />
<Directories>
<Files>$([System.IO.Directory]::GetFiles("%(Directories.Identity)", "*", System.IO.SearchOption.AllDirectories).get_Length())</Files>
</Directories>
</ItemGroup>
<RemoveDir Directories="@(Directories)" Condition="%(Files)=='0'" />
</Target>
</Project>
You just need to add ILRepack.Config.props file in your project folder with following contents.
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ILRepackTargetsFile>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))\ILRepack.targets</ILRepackTargetsFile>
</PropertyGroup>
</Project>
from ilrepack.lib.msbuild.task.
Related Issues (20)
- ILRepack is not working for desktop framework HOT 1
- Problem with duplicate Types HOT 7
- Could you please provide a new release? HOT 1
- CleanReferenceCopyLocalPaths Not Happening v2.0.18.1 HOT 9
- Release configuration merge gives error failed to resolve assembly HOT 11
- did ILRepack surport vs2019 + .net framework 4.7.2? HOT 6
- dotnet build not working HOT 5
- PrimaryAssemblyFile only added on Release Builds
- Failed to resolve assembly Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' HOT 3
- Where do we put the reference to the key HOT 4
- Build task isn't re-signing/strong-naming my assembly HOT 2
- InvalidCastException when trying to merge Oracle.ManagedDataAccess.dll HOT 1
- Support regex in InternalizeExclude HOT 1
- Force exclude a library reference from being merged in HOT 2
- Internalize not working with 2.0.22 HOT 13
- Nuget API key in appveyor.yml file? HOT 1
- Should the NuGet package be marked as a development dependency? HOT 4
- Repacking Harmony in Debug mode fails HOT 8
- Update to ILRepack 2.0.31 HOT 1
- “lc.exe”Exited,4.6--4.8.net framework ,Can we add a project Sample for learning purposes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ilrepack.lib.msbuild.task.