ОБНОВЛЕНО: для Visual Studio 2012 (эти обновления также работают в VS2010)
После попыток многих различных решений я покопался в том, как происходят преобразования web.Config ... Вот что я считаю самым элегантным решением.
Прежде всего исключите ваши файлы log4net.config из вашего проекта, если вы действительно не понимаете XML проекта, в результате вы можете получить очень запутанную дублирующую ссылку.НЕ удаляйте файлы, просто исключите их (мы будем включать их через редактор проекта).
Теперь выгрузите ваш проект, а затем отредактируйте его ... или, если хотите, перейдите в proj xml.Убедитесь, что у вас есть узел, импортирующий Microsoft.WebApplication.targets.Если вы находитесь в веб-проекте, он может быть добавлен для вас ... искать этот узел
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
После того, как у вас есть этот узел, вам нужно только добавить узел ItemGroup ...
<ItemGroup>
<WebConfigsToTransform Include="log4net.config">
<DestinationRelativePath>log4net.config</DestinationRelativePath>
<Exclude>False</Exclude>
<TransformFileFolder>$(TransformWebConfigIntermediateLocation)\original</TransformFileFolder>
<TransformFile>log4net.$(Configuration).config</TransformFile>
<TransformOriginalFolder>$(TransformWebConfigIntermediateLocation)\original</TransformOriginalFolder>
<TransformOriginalFile>$(TransformWebConfigIntermediateLocation)\original\%(DestinationRelativePath)</TransformOriginalFile>
<TransformOutputFile>$(TransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
<TransformScope>$(_PackageTempDir)\%(DestinationRelativePath)</TransformScope>
<SubType>Designer</SubType>
</WebConfigsToTransform>
<None Include="log4net.Debug.config">
<DependentUpon>log4net.config</DependentUpon>
</None>
<None Include="log4net.Release.config">
<DependentUpon>log4net.config</DependentUpon>
</None>
</ItemGroup>
Я включил зависимые файлы в ItemGroup, хотя в этом нет необходимости, но все это вместе.Обратите внимание, что вы не создали новую задачу или цель, теперь преобразование обрабатывается ТОЧНО, как преобразования web.config.