Я пытаюсь, чтобы мое веб-приложение автоматически публиковало, когда выполняется сборка выпуска. Я делаю это, используя цель _CopyWebApplication. Я добавил следующее в файл .csproj:_CopyWebApplication с преобразованиями web.config
<!-- Automatically Publish in Release build. -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="AfterBuild">
<RemoveDir Directories="$(ProjectDir)..\Output\MyWeb" ContinueOnError="true" />
<MSBuild Projects="MyWeb.csproj" Properties="Configuration=Release;WebProjectOutputDir=$(ProjectDir)..\Output\MyWeb;OutDir=$(ProjectDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
</Target>
Это работает, но с одной проблемой. Разница между этим выходом и результатом, сгенерированным при использовании пункта меню «Опубликовать» в Visual Studio, заключается в том, что преобразование Web.Release.config не применяется к файлу Web.config при использовании метода MSBuild. Вместо этого файлы Web.config, Web.Release.config и Web.Debug.config копируются.
Любые идеи приветствуются.
WTF Microsoft? Спасибо, что поделились этим Jabe ... – jjxtra
Интересно, есть ли способ исправить копирование библиотек, связанных с другим проектом, который будет включен в msbuild ouput dir? –
Я попытался сделать это с использованием WebDeploy/p: WebPublishMethod = FileSystem и с использованием файлов pubxml. Я не мог заставить его работать. Это решение - лучший способ, который я нашел. Одно слово совета: я не мог заставить его работать без набора свойств OutDir. Вам нужно будет включить его в командную строку, даже если она уже определена в свойствах вашего проекта. –