私はcsprojファイルにこのmsbuildターゲットを持っています:
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
<CreateItem Condition="'%(Extension)'=='.dll'" Include="@(ReferenceCopyLocalPaths)">
<Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
</CreateItem>
<Exec Command=""$(ProjectDir)..\..\..\tools\IlMerge\Ilmerge.exe" /targetplatform:"v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319" /ndebug /out:@(MainAssembly) "@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" />
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
これは魅力のように機能します。しかし、私はそれが特定のファイルを除外することを望み、それを微調整しようとしました:
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
<CreateItem Condition="'%(Extension)'=='.dll' AND '%(Filename)' != 'Foo.dll'" Include="@(ReferenceCopyLocalPaths)">
<Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
</CreateItem>
<Exec Command=""$(ProjectDir)..\..\..\tools\IlMerge\Ilmerge.exe" /targetplatform:"v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319" /ndebug /out:@(MainAssembly) "@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" />
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
ただし、これは機能しません。誰かが私が間違っていることを知っていますか?