Problemas de compilação do .NET 4.0 no servidor CI

99

Alguém consegue compilar aplicativos .NET 4.0 em um servidor CI sem instalar o Visual Studio 2010 em um servidor CI?

Não existe SDK para .NET 4.0. Ter instalado o .NET 4.0 no CI Server. Msbuild.exe funciona para projetos simples e fornece o seguinte aviso:

(Destino GetReferenceAssemblyPaths) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): aviso MSB3644: Os assemblies de referência para a estrutura ".NETFramework, Versão = v4.0" não foram encontrados. Para resolver isso, instale o SDK ou Targeting Pack para esta versão da estrutura ou redirecione seu aplicativo para uma versão da estrutura para a qual você possui o SDK ou Targeting Pack instalado. Observe que os assemblies serão resolvidos no Global Assembly Cache (GAC) e serão usados ​​no lugar dos assemblies de referência. Portanto, sua montagem pode não ser direcionada corretamente para a estrutura que você pretende.

DMcKenna
fonte
1
Como posso tornar isso um erro fatal em vez de um aviso? Ele está oculto em nosso log de compilação e, em vez disso, falha ainda mais com alguma mensagem enigmática sobre mscorlib.dll
Coronel Panic
Eu escrevi uma postagem detalhada sobre isso aqui: neelbhatt.com/2018/05/04/…
Neel

Respostas:

128

Você não precisa mais instalar o VS, você pode instalar o "Microsoft Windows SDK para Windows 7 e .NET Framework 4" agora.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

JeremyWeir
fonte
44
A instalação padrão é 1,7 GB, mas a maioria desses arquivos são desnecessários. Se você desmarcar tudo, exceto .NET Development> Intellisense e Reference Assemblies, isso ainda fornecerá o pacote de direcionamento .NET 4 de que você precisa (tem cerca de 450 MB).
Luke Sampson
1
Você também pode querer verificar .NET Development> Tools, pois isso trará vários utilitários, como sn.exe, que são úteis para lidar com assemblies assinados.
Mykro
8
Há também um instalador da web, então você só precisa baixar as partes necessárias. Pode ser baixado aqui: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Embora seja denominado "para Windows 7", vale a pena observar os sistemas operacionais suportados: Windows 7, Windows Server 2003 R2 Standard Edition (32 bits x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Service Pack 3
Aligma
2
Essa resposta me ajuda. Tive um problema diferente ao instalar o SDK 7.1 que foi resolvido conforme mostrado aqui mathworks.com/matlabcentral/answers/95039
ari
23

SDK para .NET 4.5 disponível aqui . O instalador funciona bem com proxy com autorização básica. Sistemas operacionais com suporte: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Minha resposta é mais como um comentário sobre a resposta de Jeremy , mas não tenho reputação suficiente para comentar as respostas.

Resnyanskiy
fonte
1
Na página referenciada: "O SDK do Windows não é mais fornecido com um ambiente de construção de linha de comando completo. O SDK do Windows agora requer que um compilador e um ambiente de construção sejam instalados separadamente." Portanto, presumo que isso não seja suficiente para executar um servidor de compilação.
Chris
1
Isso consertou para mim. Você só precisa selecionar a opção "Kit de desenvolvimento de software .NET Framework 4.5" que requer apenas 62,3 MB e funciona bem em um servidor TFS Build 2013 instalado no Windows Server 2012 R2 para implantação de aplicativos do SharePoint. Não há necessidade de substituir o parâmetro FrameworkPathOverride.
Koen Zomers
10

outra alternativa: sem instalar o Net 4.0 SDK ou vs 2010

Copie a pasta de assemblies de referência de sua máquina de desenvolvimento para o servidor de compilação (190 MB).

use a opção msbuild -p: FrameworkPathOverride para apontar para a pasta de assemblies de referência

a localização dos conjuntos de referência:

C: \ Arquivos de programas (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 ou C: \ Arquivos de programas \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

encontrei isso em:

Avisos de assemblies de referência de servidor de compilação .NET 4.0 MSB3644

Se você receber este erro: "Microsoft.WebApplication.targets was not found" - basta copiar o destino da máquina de desenvolvimento https://stackoverflow.com/a/5344246/423356

se mvc3 não estiver instalado no servidor de compilação; "adicionar assemblies implantáveis" ao projeto mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Se você tiver erro ao construir o projeto MSTest sem o SDK ou Visual Studio instalado; Existem várias postagens de blog sobre isso, mas a solução é muito complexa para mim. Eu uso o NUnit em vez do MSTest

pipa
fonte
Já que meu servidor de 2012 não me deixou instalar o .Net 4 porque o instalador disse que há uma versão superior. Fiz o que o @kite disse e copiei de um PC que tinha onde o VS 2012 estava instalado. Isso resolveu meus problemas.
chdev77
0

Esta página lista os SDKs do .NET para cada versão do Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Para um download menor, escolha o 'pacote de desenvolvedor' ou 'pacote de destino' em vez do Windows SDK completo.

Coronel Panic
fonte
Pode ser uma dica geral para instalar o pacote de desenvolvedor ou pacote de segmentação, mas específico para .NET Framework 4.0 (esta questão é sobre) não existe tal pacote e o SDK do Windows é inevitável.
Lex Li