Estou tentando atualizar nosso buildserver (jenkins) do Visual Studio 2015 para 2017. Estamos construindo por meio do MS-Build. Baixei e instalei as ferramentas MS-Buld conforme descrito nesta resposta . Se eu compilar meus projetos, obtenho um erro que Microsoft.WebApplication.targets
não foi encontrado.
Erro detalhado:
error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"
Realizei uma busca no diretório MS-Build:
PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11.01.2012 00:23 19654 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 06.07.2015 21:55 20118 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Como pode ser visto, o arquivo existe para versões antigas do compilador, mas para a v15.0 ele está ausente.
Também instalei o Visual Studio 2017 no servidor de compilação. O projeto terá sucesso na construção se eu compilar com Visual Studio 2017.
Alguma dica de como resolver esse problema? Uma solução possível é gerar um link simbólico do C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
ponto para os arquivos v14.0 antigos (localizados em C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
).
THX
fonte
Respostas:
Parece que você está perdendo a carga de trabalho para "Ferramentas de construção de desenvolvimento da Web":
Microsoft.VisualStudio.Workload.WebBuildTools
.Você pode instalá-lo baixando o instalador de ferramentas de construção aqui (VS2017) ou aqui (VS2019) e executando
ou abrir
vs_buildtools.exe
e selecionar o componente "Ferramentas de desenvolvimento da Web" na GUI:fonte
Build Tools for Visual Studio 2017
com aWeb development build tasks
partir do link fornecido, porém ele ainda não cria aC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
pasta .. eu também não vejovs_buildtools.exe
.. eu pesquisei todo o `c:`$(MSBuildExtensionsPath)
foi alterado paraC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild
stackoverflow.com/questions/47077150/… issoA resposta aceita acima é tecnicamente correta, apenas incompleta, um pouco confusa, pelo menos para mim, e precisava de uma etapa extra para fazer o Visual Build Professional funcionar.
vs_buildtools.exe não existe tecnicamente. Tive que criar uma pergunta perguntando onde estava aquele arquivo. Não era óbvio que vs_buildtools.exe é vs_buildtools _ *******. Exe e é o programa de instalação real. Além disso, o "-add ***" mencionado acima é apenas uma abreviação. Pode-se ir para a GUI e verificar as duas tarefas do fluxo de trabalho. Isso faz a mesma coisa. Acabei tendo o arquivo vs_buildtools, embora não precise dele.
O VSB Pro ainda não construiu meu projeto. Eu recebi o mesmo erro acima. O segredo era simplesmente copiar a
WebApplications
pastaC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0
paraC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
. Em seguida, reconstruí o projeto e estava tudo bem. Coloquei o arquivo WebApplication.targets no local esperado.Por que a Microsoft não poderia ter feito isso está além de mim. Além disso, por que a instalação separada. O VS17 instala uma quantidade enorme de coisas. Build Tools está implícito, como sempre. Tanto faz.
Estou postando esta resposta porque espero que ajude outras pessoas. Eu caí na armadilha e perdi um bom tempo com meu projeto não construindo. Espero que esta resposta esclareça um pouco as coisas.
fonte
Tive um problema semelhante depois de ter atualizado do Visual Studio 2015 para 2017. Quando tento carregar o projeto de aplicativo da web, ele me lança a mensagem de erro:
A solução para este erro que encontrei aqui .
No meu caso, o arquivo .csproj continha as seguintes linhas:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath> </PropertyGroup>
Depois de substituir o
v14.0
byv$(VisualStudioVersion)
naVSToolPath
tag, o projeto pode ser carregado.Também substituí o
v14.0
porv10.0
naVisualStudioVersion
tag, como mostra a solução no link acima. Mas para mim também funcionou deixando-o em 14.0.Aqui está como essas linhas devem ficar no final:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup>
Se você não tiver essas linhas em seu .csproj, será necessário adicioná-las manualmente ANTES desta linha:
<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />
No meu caso (mensagem de erro ligeiramente diferente, mas mesmo problema) era esta linha:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Parece que os projetos criados com as versões do Visual Studio desde 2011 contêm as linhas com o
VSToolsPath
redefinição, enquanto os arquivos mais antigos não. O Visual Studio nunca os adicionou automaticamente ao atualizar para uma versão mais recente do VS, por isso você deve adicioná-los se não estiverem lá.Fonte desta informação: https://developercommunity.visualstudio.com/content/problem/27735/project-fails-to-load-with-error-regarding-microso.html?childToView=123664#comment-123664 (clique em Mostrar mais comentários para ver o tópico de discussão completo - infelizmente, não posso criar um link direto para comentários nesta seção "mais".)
fonte
É fácil instalar as ferramentas de compilação 2017, com a
WebBuildTools
opção já incluída, usando chocolate . Depois de instalá- lo, digite o seguinte em um prompt de comando do administrador:Para o VS 2019, é semelhante:
fonte
cinst visualstudio2017buildtools -params '--add Microsoft.VisualStudio.Workload.WebBuildTools' -y ; cinst microsoft-build-tools -y
Copiar
WebApplications
pasta deC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0
para
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
Ou em seu script de construção, adicione a seguinte linha antes de compilar
Copy-Item "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications" -Recurse -Force
Certifique-se de executá-lo com permissões elevadas
fonte
como criar VS 2017 pro, aplicativo asp.net MVC e construí-lo com Jenkins?
use vs 2017 pro na máquina de desenvolvimento e no servidor de compilação
Verifique se VisualStudio está definido como 15
Import Project = "$ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets" Condition = "false"
defina a ferramenta msbuild
como C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exe no gerenciador de configuração global jenkins
Com jenkins, execute o comando batch do Windows:
retore nugets: "C: \ Arquivos de programas (x86) \ Jenkins \ tools \ nuget \ NuGet.exe" restaure "C: \ Arquivos de programas (x86) \ Jenkins \ workspace \ theapp_build \ theapp. sln "
Com jenkins, execute o lote de comando do Windows:
Arquivo de compilação do MSBuild: theapp.sln
Argumentos da linha de comando: / nologo / t: restore / t: rebuild / p: Configuration = "Debug" /p:VisualStudioVersion=15.0
fonte
Para o VS 2019, corrigi isso copiando:
para
fonte
Acabei de usar o Visual Studio Installer para atualizar o Visual Studio Community 2017 , então o problema está resolvido.
fonte