Alguém viu esse erro e sabe como consertar?
A tarefa "TransformXml" não pôde ser carregada do assembly C: \ Arquivos de programas (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll.
Não foi possível carregar o arquivo ou assembly 'file: /// C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.
Confirme se a declaração está correta, se o assembly e todas as suas dependências estão disponíveis e se a tarefa contém uma classe pública que implementa Microsoft.Build.Framework.ITask.
Eu li em outro lugar que o problema é quando você não tem o SQL Server instalado. Mas eu tenho o SQL Express 2012 x64 instalado com SP1. Também estou executando o VS 2013 Professional.
Eu executei essa mesma solução exata no VS 2012 express sem problemas.
fonte
Respostas:
As respostas fornecidas por Dai Bok e emalamisura funcionam bem, desde que você use o Visual Studio 2012. Para o VS 2013, isso também falha. Para fazer isso funcionar com todas as versões do Visual Studio, você deve:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
Isso definirá a versão correta do Visual Studio de forma dinâmica e adequada.
fonte
$(VisualStudioVersion)
está retornando uma versão anterior :(Para fazer o meu funcionar, apenas copiei minha
v10.0
pasta e a renomeei parav11.0
, e as coisas parecem funcionar bem a partir de então. Essa é a solução rápida por enquanto.Como essa provavelmente não é a melhor solução e, embora funcione, eu ia tentar instalar o Microsoft Windows SDK para Windows 7 e o .NET Framework 4 Windows SDK para Windows 7 e .NET Framework 4, mas está demorando muito para baixar.
fonte
Venho combatendo esse problema em nosso servidor de compilação há vários dias, então resolvi documentar a resolução que encontrei. Primeiro, meu servidor de construção tem as extensões de publicação na web instaladas . Posso usar a tarefa TransformXml para o conteúdo do meu coração dentro de um projeto de aplicativo da web.
Para usá-lo fora de um projeto de aplicativo da web, tentei adicionar o elemento UsingTask ao meu projeto e apontá-lo para o lugar certo usando as propriedades de construção do ms (como Benjamin demonstrou). No entanto, eles não estavam lá no meu servidor de compilação (aqueles com fácil acesso ao sistema de arquivos de seu servidor de compilação provavelmente podem ignorar isso e apenas instalar o pacote relevante no Visual Studio). Eu até fui mais longe a ponto de codificar as versões do Visual Studio, mas sempre deixava esse erro cair sobre mim.
Finalmente desisti, puxei as DLLs do meu PC local:
Eu os carreguei no controle de origem e adicionei essa pasta ao espaço de trabalho da minha construção (Editar definição de compilação -> Configurações de origem -> Pasta de controle de origem). A partir daí, eu nem preciso fazer referência à pasta - aqui está a aparência de meu UsingTask:
Agora posso usar a tarefa TransformXml da forma que desejar em qualquer projeto.
fonte
Para corrigir o problema,
Isso resolveu o problema, pois cria as dll no caminho mencionado.
fonte
Tools → Get Tools and Features... → Individual Components: Windows 10 SDK (10.0.14393.0) and ASP.NET and web development tools
. Isso parece ter funcionado.Como há apenas v12.0, v14.0 e v15.0 na minha pasta VisualStudio, edito meu arquivo de projeto e altero o caminho de referência de v10.0 para v14.0. Então, o projeto é construído com sucesso.
Antes:
Depois de:
fonte
Para VS2019
Eu substituí
MSBuildToolsVersion
comVisualStudioVersion
.fonte
A resposta correta para isso é descarregar o projeto em questão e, em seguida, editar o arquivo csproj, procurar uma entrada onde eles estão fazendo referência ao caminho 10.0 e alterá-lo para apontar para 11.0.
fonte
Você precisa de duas coisas para fazer isso funcionar:
1) Instale o Visual Studio Build Tools (você não precisa de todo o Visual Studio, apenas do VS Build Tools) com a opção "Web development build tools" selecionada em seu servidor de compilação https://www.visualstudio.com/pl/thank -you-downloading-visual-studio /? sku = BuildTools & rel = 15
2) Certifique-se de que o caminho para Microsoft.Web.Publishing.Tasks.dll esteja correto
fonte
Para mim, começou a funcionar apenas adicionando referência ao pacote NuGet MSBuild.Microsoft.VisualStudio.Web.targets v14.0.0.3
Mesmo sem a necessidade de adicionar o elemento UsingTask ao arquivo do projeto, conforme mencionado pelo autor do pacote
E então eu fui capaz de usar TransformXml e outras tarefas, definidas no pacote, por exemplo para transformar app.config
fonte
Caso alguém esteja usando um csproj no estilo SDK, você pode conseguir isso sem precisar instalar o Visual Studio no servidor de compilação.
Primeiro você deve instalar o pacote nuget SlowCheetah em seu projeto. Depois de instalá-lo, você verá o seguinte em seu projeto de estilo SDK.
Em seguida, certifique-se de adicionar o atributo GeneratePathProperty = "true" (veja abaixo). Isso é muito importante para a próxima parte porque o ajudará a identificar o caminho de onde o pacote nuget é restaurado em sua máquina. George Dangl explica isso em seu artigo aqui .
Importe os destinos SlowCheetah para o seu projeto:
Agora você pode usar um comando de destino (neste caso, após publicar) para aplicar algumas transformações personalizadas. Se necessário, você sempre pode codificar os nomes de arquivo abaixo em vez de usar as variáveis no exemplo abaixo.
Se você nunca usou o SlowCheetah antes, recomendo dar uma olhada. Eles têm uma extensão do Visual Studio que tornará mais fácil para você visualizar os arquivos de transformação.
fonte