Pergunta

Eu tenho um arquivo de solução com ASP.NET Web Sites.

Quando eu construir a solução com .NET 4.0 Beta 2 usando

"c: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.21006 \ MSBuild.exe" d: \ MyPath \ MySolution.sln

Tudo funciona bem, sem erros. Então eu tentar construir a mesma solução com CruiseControl .NET tarefa (RAN-script msbuild por um serviço), a mesma solução falhar com:

D: \ MyPath \ MyWebSite.metaproj (,): errorMSB4025: O arquivo de projeto não pôde ser carregado. Não foi possível encontrar o arquivo 'D: \ MyPath \ MyWebSite.metaproj'.

É claro que não há nenhum arquivo assim. Acho * .metaproj é um .csproj-like msbuild-arquivo gerado dinamicamente para web sites ...

Mas eu não sei como corrigir o erro ... Eu tentei google metaproj-arquivos sem sorte. Eu tentei fazer o arquivo manualmente, I inserido um com e a compilação não levantou quaisquer erros, mas eu acho que o site não compilar.

A mesma máquina tem .NET 3.5 e .NET 4.0 projetos e variáveis ??de ambiente para ambas as estruturas.

Foi útil?

Solução 4

Visual versão final Studio 2010 corrigido este bug.

Outras dicas

Existe uma maneira de contornar isso, se você pode se livrar de dependências de projeto no arquivo de solução. Você pode manter dependências do projeto no arquivo de projeto, mas removê-los do arquivo de solução. Veja este link para o presente
Resposta .

Estou recebendo o mesmo problema com o TFS servidor de compilação de 2008. Uma vez eu troquei as tfs construtor de configuração do servidor para usar 4.0 msbuild eu comecei a receber esse mesmo problema. Se eu executar o msbuild manualmente sua multa e ele diz no log sua construção de um arquivo metaproj, mas no processo de compilação automatizada ele falhar.

Russ

Eu li discussões CruiseControl e tentou correr mesmos comandos como CruiseControl.net faz e eu resolvido meu caso para que eu mudei o meu

Os espaços nos nomes de diretório faz MSBuild para falhar sob Cruise Control !! ??

Então, eu dou diretórios explicitamente para o controle de cruzeiro, sem espaços. Exemplo abaixo.

<Project name="ProjectNameHere"> <workingDirectory>c:\dev\work\ProjectNameHere\WorkDir</workingDirectory> <artifactDirectory>c:\dev\work\ProjectNameHere\Artifacts</artifactDirectory> ...

A primeira vez que criou uma my_website.metaproj ao lado do my_solution.sln que ficou assim:

<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Build">
    <Message Text="Building...but nothing to build" />
  </Target>

  <Target Name="Test">
    <Message Text="Testing...but nothing to test." />
  </Target>

  <Target Name="Clean">
    <Message Text="Cleaning...but nothing to clean." />
  </Target>

</Project>

Em seguida, ele reclamou de não encontrar sgen.exe. Eu instalei o Visual Studio 2010 Beta 2 no agente de compilação e parece que ele está trabalhando agora.

[Edit] Isso realmente não completamente trabalhar. Não estava puxando as dependências do projeto de site para seu diretório bin.

O que acabamos fazendo estava raspando o processo de construção de atualização e refazer o processo de construção com uma variação do modelo standard. Isso funcionou bem.

Em VS2013 comutação do DefaultTemplate ao TfvcTemplate.12 funcionou para mim!

Algumas informações sobre o TfvcTemplate.12 aqui http://blog.qetza.net/en/2013/10/03/new-features-in-team-build-2013/

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