Estou criando um projeto por meio da linha de comando e não dentro do Visual Studio 2013. Observe que eu atualizei meu projeto do Visual Studio 2012 para 2013. O projeto é compilado dentro do IDE. Além disso, eu desinstalei completamente o VS2012 primeiro, reiniciei e instalei o VS2013. A única versão do Visual Studio que tenho é o 2013 Ultimate.
ValidateProjects:
39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.
Aqui estão as duas linhas em questão:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
A segunda linha original era a v10.0, mas eu a alterei manualmente para a v12.0.
$ (VSToolsPath) alonga do que vejo para a pasta v11.0 (VS2012), que obviamente não existe mais. O caminho deveria ter sido para a v12.0.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\
Tentei especificar o VSToolsPath na tabela de variáveis de ambiente do sistema, mas o utilitário de compilação externo ainda usa a v11.0. Tentei pesquisar no registro e isso não deu em nada.
Infelizmente, não vejo nenhuma maneira fácil de obter a linha de comando exata usada. Eu uso uma ferramenta de construção.
Pensamentos?
fonte
Respostas:
Eu tive o mesmo problema e encontrei uma solução mais fácil
Isso ocorre porque o Vs2012 adiciona o seguinte ao arquivo csproj:
Você pode remover com segurança essa parte e sua solução será criada.
Caso contrário, se você precisar usar o webdeploy ou usar um servidor de construção, a solução acima não funcionará, mas você pode especificar a
VisualStudioVersion
propriedade no seu script de construção:ou edite sua definição de construção:
fonte
Eu também tinha isso e você pode corrigi-lo definindo a versão das ferramentas na sua definição de compilação.
Isso é muito fácil de fazer. Abra sua definição de construção e vá para a página " Processo ". Em seguida, no grupo " 3. Avançado ", você tem uma propriedade chamada " Argumentos do MSBuild ". Coloque o parâmetro lá com a seguinte sintaxe
Se você tiver mais parâmetros, separe-os com um espaço e não uma vírgula.
fonte
Isso está intimamente relacionado, mas pode ou não corrigir um problema específico do OP. No meu caso, eu estava tentando automatizar a implantação de um site do Azure usando o VS2013. Construir e implantar via VS funciona, no entanto, o uso do MSBuild mostrou um erro semelhante nos "destinos". Acontece que o MSBuild é diferente no VS2013 e agora faz parte do VS e não o .NET Framework (consulte http://timrayburn.net/blog/visual-studio-2013-and-msbuild/ ). Basicamente, use a versão correta do MSBuild:
ANTIGO, VS2012
NOVO, VS2013
Mais recente, VS2015
Mais novo ainda, o VS2017 (não testando completamente, mas descoberto - eles mudaram um pouco as coisas)
fonte
Acabei de receber uma resposta do Kinook, que me deu um link :
Basicamente, preciso ligar para o seguinte antes de fazer o bulding. Acho que o Visual Studio 2013 não registra o ambiente automaticamente primeiro, mas 2012 o fez, ou eu o esqueci.
Felizmente, este post ajuda outra pessoa.
fonte
node-gyp
oCpp default.props
não foi encontrado! +1A solução de giammin está parcialmente incorreta. Você NÃO DEVE remover esse grupo inteiro de propriedades da sua solução. Se você fizer isso, o recurso "DeployTarget = Package" do MSBuild irá parar de funcionar. Esse recurso depende do "VSToolsPath" que está sendo definido.
fonte
Eu tive esse problema para nossos destinos do FSharp (o FSharpTargetsPath estava vazio).
Muitos dos caminhos são criados com referência à versão VS.
Por várias razões, nossa compilação é executada com privilégios de sistema, e a variável de ambiente "VisualStudioVersion" foi definida apenas (pelo instalador do VS 2013) no nível "usuário" - o que é justo.
Verifique se a "
VisualStudioVersion
" variável de ambiente está definida como "12.0
" no nível (Sistema ou Usuário) em que você está executando.fonte
System
a partir do Painel de Controle, em seguida, selecioneAdvanced system settings
e, finalmente, cliqueEnvironment Variables
Executar isso na linha de comando também corrigirá o problema. SETX VisualStudioVersion "12.0"
fonte
Se você migrar o Visual Studio 2012 para 2013, abra o arquivo de projeto * .csprorj com o edior.
e verifique o elemento ToolsVersion da tag 'Project'.
Esse é o valor 4.0
Você chega a 12.0
De
Para
Ou Se você criar com o msbuild, basta especificar a propriedade VisualStudioVersion
fonte
Eu estava usando um utilitário de construção externo. Pense em algo como formigas, se eu entendi o produto corretamente, apenas uma versão comercial. Eu tive que entrar em contato com o fabricante para obter a resposta.
Como se vê, há uma macro global no projeto, DEVSTUDIO_NET_DIR. Eu tive que mudar o caminho para .Net lá. Eles listam várias versões do visual studio como "Actions", que acabam comigo, mas todos os caminhos levam de volta a essa variável global nos bastidores. Eu listaria isso como um defeito contra o produto, se eu tivesse o que queria, a menos que estivesse perdendo algo em meu entendimento. A correção do caminho corrigiu o problema de compilação.
fonte
Eu tenho o Visual Studio 2013 instalado. Isso funcionou para mim:
Então, eu mudei a condição de
==
para!=
e o valor de10.0
para12.0
.fonte
Eu tive um problema semelhante. Todas as soluções propostas são apenas uma solução alternativa para esse problema, mas não estão solucionando a fonte de erros. A solução @giammin não deve ser aplicada se você estiver usando o servidor de compilação tfs, pois há apenas uma funcionalidade de publicação com falha. @ cat5dev solution - resolve o problema, mas não resolve a fonte.
Tenho quase certeza de que você está usando o modelo de processo de compilação para o VS2012, como
ReleaseDefaultTemplate.11.1.xaml or DefaultTemplate.11.1.xaml
esses modelos de compilação foram criados para o VS2012 e $ (VisualStudioVersion) definido como 11.0Você deve usar o modelo de processo de compilação para o VS2013
ReleaseTfvcTemplate.12.xaml or TfvcTemplate.12.xaml
que possui $ (VisualStudioVersion) definido como 12.0Isso funciona sem nenhuma alteração no arquivo do projeto.
fonte
Eu também tive o mesmo erro .. Eu fiz isso para corrigi-lo
mudar para
e está feito.
fonte
No meu caso, eu apenas comento a linha abaixo, abrindo o arquivo .csproj e fiz o truque
.
<!-- <Import Project="..\PRPJECTNAME.targets" /> -->
Meu problema pode ser diferente, mas sou arrastado aqui, mas isso pode ajudar alguém.
Eu escolhi um único projeto da web da minha solução e tente abri-lo como um projeto autônomo que estava causando problemas, depois que acima de tudo, sou capaz de resolver o problema.
fonte
Use a versão correta do MSBuild. Defina a variável de ambiente como:
Isso também funcionará para projetos do VS 2019
Anteriormente, estávamos configurando-o para
C:\Windows\Microsoft.NET\Framework\v4.0.30319
fonte
No meu caso, o ambiente de desenvolvimento é o VS2013 e estou usando o TFS 2010. O Build foi direcionado para o .NET 4.5.1. Eu estava configurando a compilação automática para o CI. sempre que eu tentava soluções alternativas mencionadas acima - como remover o grupo de propriedades completamente ou substituir algumas linhas, etc. minha compilação costumava acontecer no TFS, mas minha publicação no azure costumava falhar com 'MSDeploy' ou às vezes com algum erro diferente. Não fui capaz de alcançar os dois simultaneamente.
Por fim, tive que passar o argumento do MSBuild para resolver o problema.
Vá para Editar definição de construção> Processo> 3. Avançado> Argumentos do MSBuild (definido como) /p:VisualStudioVersion=12.0
Funcionou para mim.
fonte
Você deve copiar a pasta WebApplications de C: \ Arquivos de programas (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ para C: \ Arquivos de programas (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \
fonte
você encontrará
no arquivo csproj para o qual esse erro está aparecendo. Apenas remova isso do csproj e construa.
fonte
É necessário fazer apenas uma coisa para resolver o problema: atualize o TeamCity para a versão 8.1.x ou superior, pois o suporte ao Visual Studio 2012/2013 e MSBuild Tools 2013 foi introduzido apenas no TeamCity 8.1. Depois de atualizar o TeamCity, modifique a configuração da Versão das ferramentas do MSBuild na etapa de compilação e o problema desaparecerá. Para mais informações, leia aqui: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html
fonte
Eu - nada estava ajudando na alteração do valor v11.0 da variável VisualStudioVersion para v10.0. Alterar a variável no arquivo .csproj não. Configurá-lo através do comando promt não. Etc ...
Acabei copiando minha pasta local dessa versão específica (v11.0) para o meu servidor de compilação.
fonte
Eu tinha tentado todas as soluções acima e ainda não tive sorte. Eu tinha ouvido pessoas instalando o visual studio em seus servidores de compilação para corrigi-lo, mas eu tinha apenas 5 GB de espaço livre, então copiei C: \ Arquivos de Programas (x86) \ MSBuild \ Microsoft \ VisualStudio para o meu servidor de compilação e liguei por dia . Começou a trabalhar depois disso, usando o team city 9.xe o visual studio 2013.
fonte
Baseado no TFS 2015 Build Server
Se você combater esse erro
... Error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Abra o
.csproj
arquivo do projeto nomeado na mensagem de erro e comente a seção abaixo<!-- <PropertyGroup> --> <!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> --> <!-- <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> --> <!-- </PropertyGroup> -->
fonte
Eu recebi esse erro ao instalar alguns componentes do VS. Infelizmente, nenhuma dessas respostas não me ajudou. Uso o TFS para o desenvolvimento de comandos e não tenho permissões para editar a definição de compilação. Resolvi esse problema excluindo variáveis de ambiente que chamavam
VS110COMNTOOLS
eVS120COMNTOOLS
. Eu acho que foi instalado com meus componentes do VS.fonte
Descobri que estava faltando a pasta WebApplications no meu PC local, não instalei com o Visual Studio 2017 como havia quando eu estava usando 2012.
fonte
No meu caso, eu estava usando a versão errada do
MSBuild.exe
.A versão que você precisa usar depende da versão do Visual Studio usada para criar seu projeto. No meu caso, eu precisava do 14.0 (depois de usar o Visual Studio 2015).
Isso foi encontrado em:
Você pode procurar em:
Para encontrar outras versões.
fonte