Atualmente estou integrando CI em nosso processo de desenvolvimento e implantação. Aqui está um problema que encontrei:
Eu estava acompanhando as informações coletadas abundantemente no Blog Troy Hunts quando de repente ocorreu um erro:
error MSB4019: The imported project "C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0WebApplicationsMicrosoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
TeamCity está tentando me dizer que eu não tenho o Visual Studio 2012 Web Application Support instalado. Infelizmente, não vou fazer isso, principalmente por causa de problemas de licenciamento.
Mas existe uma solução fácil para isso. Instale o pacote MSBuild.Microsoft.VisualStudio.Web.targets em sua solução e substitua a referência antiga:
<Import Project="$(VSToolsPath)WebApplicationsMicrosoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov10.0WebApplicationsMicrosoft.WebApplication.targets" Condition="false" />
Com este novo, que usaria o pacote instalado do NuGet:
<Import Project="..packagesMSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1toolsVSToolsPathWebApplicationsMicrosoft.WebApplication.targets" Condition="true" />
Espero que isto ajude.
EDIT: Acabei de ter a mesma coisa de novo hoje e percebi que esqueci de mencionar que tudo isso é bom e bom, mas você precisa fornecer um ApplicationPool e SiteName como um ‘DeployIisAppPath’ também, assim:
<DeployIisAppPath>AppPool/SiteName</DeployIisAppPath>
Você deve colocá-lo no grupo de propriedades de configurações do projeto. Para mim, é sempre a segunda ou terceira tag xml do grupo de propriedades (Depurar / Liberar), é semelhante a esta:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Saudações,
Kjellski