Pergunta

Eu configurei o NANT para criar meu projeto ASP.NET MVC e funciona bem localmente. Eu adiciono Nant a uma pasta de ferramentas e a adiciono ao controle da versão. O TeamCity pega minhas mudanças e inicia a construção, mas falha.

Acredito que estou usando a versão mais recente do Nant e adicionei o .NET Framework 3.5 ao Nant.exe.config. O que estou perdendo no servidor e sim, a estrutura .NET está instalada no servidor, pois o aplicativo ASP.NET MVC funciona se eu formar manualmente e implantar lá?

O arquivo de construção é o seguinte:

<target name="compile" description="Compiles using the AutomatedDebug Configuration">
    <msbuild project="Tolt.Sims.sln" />
</target>

Aqui está o erro:

BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set.
For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
Foi útil?

Solução

Se você estiver usando a versão beta do NANT (que atualmente é a única maneira de obter suporte para direcionar algo maior que a estrutura 2.0), talvez você encontre um problema de registro. Um problema semelhante era relatado por Tim Barcz.

As coisas praticamente se resumiram ao NantContrib (provedor de tarefas msbuild) apontando para a versão 2.0 do msbuild. Confira a solução dele para ver se ela se aplica ao seu cenário.

Outras dicas

Potencialmente, você não tem o .NET Framework 2.0 SDK instalado.

Você pode instalá -lo dehttp://www.microsoft.com/downloads/details.aspx?familyid=Fe6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=en

Eu consertei isso adicionando o seguinte no registro:

Novo valor da string em: hkey_local_machine software microsoft.netframework

Nomeado: sdkinStallrootv2.0

Com o valor: C: Arquivos de Programas Microsoft Visual Studio 8 SDK V2.0

Parecia surgir na vida ...

W://

Isso foi corrigido após a liberação de 0,86 beta1. Em 1º de abril de 2010, 0,90 foi lançado com a correção, caso a atualização do NANT seja uma opção para você. Para fornecer mais detalhes, a liberação de correção em 0,90 parece ter sido simples alterações no arquivo Nant.exe.config. O texto em negrito abaixo foi adicionado e provavelmente corrigirá o problema sem precisar instalar o SDK 2.0.

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if = "$ {propriedade :: existe ('sdkinStallroot')}" />

Atualize a seção Net-2.0 para corrigi-la.

Eu encontrei problemas semelhantes com Nant. Eu sei que este não é o Melhor Solução, mas é aquele que funciona se você precisar se mover seu projeto.

Descobri que a instalação de um ambiente de desenvolvimento (o C# Express não funcionou para mim, mas o VS 2008 fez) no servidor faz com que esse problema desapareça. (Sim, percebo que isso vai contra as melhores práticas normais, mas funciona e deixa meus scripts funcionarem para que eu possa voltar à codificação.)

Acabei de imaginar que eu compartilharia o caso de mais alguém está em uma situação semelhante. (Isso funcionou para mim com o CruiseControl.net e com Hudson).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top