2
У меня есть эта цель MSBuild в моем файле csproj:Как исключить конкретный файл из моего MsBuild AfterBuild цели
<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>
Однако, это не работает. Кто-нибудь знает, что я делаю неправильно?
Я думаю, что (по памяти), что% (Имя файла) будет 'Foo' –
Да, Ты прав. Просто понял то же самое. Вы хотите отказаться от ответа, чтобы я мог принять его? – Christoph
Это случилось со мной однажды, но я не был уверен и не мог проверить его сейчас. Именно по этой причине я ставлю его комментарием. Я создал ответ сейчас. Счастлив, что ты исправил проблему :) –