Visual Studio continua adicionando propriedade ao meu csproj. Por quê?

10

Estou usando o Visual Studio 2012 RC para trabalhar com a minha solução C #. Todas as minhas configurações específicas de configuração são armazenadas em um único arquivo .props que é então incluído por todos os meus arquivos .csproj.

No entanto, o VS insiste em colocar isso bem na frente do include:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
   <IntermediateOutputPath>C:\Users\xyz\AppData\Local\Temp\vs855E.tmp\Debug\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
   <IntermediateOutputPath>C:\Users\xyz\AppData\Local\Temp\vs855E.tmp\Release\</IntermediateOutputPath>
</PropertyGroup>

<Import Project="$(MSBuildProjectDirectory)\..\Common.props" />

Por que isso?

FYI, meu arquivo comum é assim: link

    
por Filip Frącz 09.07.2012 в 20:45
fonte

3 respostas

6

Esses IntermediateOutputPath podem ser inseridos quando o MSBuild tiver um caminho ruim.

No nosso caso, tivemos uma barra extra desnecessária após o SolutionDir para pastas de saída.

O que não estava funcionando para nós (observe a barra extra):

<OutputPath>$(SolutionDir)\out\bin\</OutputPath>
<IntermediateOutputPath>$(SolutionDir)\out\obj\</IntermediateOutputPath>

O que funcionou:

<OutputPath>$(SolutionDir)out\bin</OutputPath>
<IntermediateOutputPath>$(SolutionDir)out\obj</IntermediateOutputPath>

Para ajudar a solucionar seu caso específico, tente ativar a saída de diagnóstico do MSBuild e o registro em Ferramentas- > Opções- > Projetos e soluções- > Criar e executar- > Projeto MSBuild construir verbosidade de saída. Em seguida, procure a pasta gerada (ex. "Temp").

O uso de um arquivo comum proj / props / targets é uma ótima idéia, mas requer um pouco do Visual Studio.

    
por user4195356 29.10.2014 / 19:37
fonte
0

Assim, você pode substituir essas configurações, se necessário. Se a sua importação veio antes, as propriedades do Visual Studio teriam precedência. No MSBuild, a última definição ganha e é usada. Isto é uma coisa boa. Está causando erros? Ou você simplesmente não gosta disso?

    
por Aaron Jensen 11.07.2012 / 02:45
fonte
0

Você especificou o em seu projeto. O arquivo de propriedades terá o BaseIntermediateOutputPath. Se você não especificar nenhum valor, ele será derivado da sua Base.

O caminho de saída intermediário completo conforme derivado de BaseIntermediateOutputPath, se nenhum caminho for especificado. Por exemplo, \ obj \ debug. Se essa propriedade for sobrescrita, a configuração de BaseIntermediateOutputPath não terá efeito.

Consulte: link

    
por Vasanthan 09.11.2012 / 12:45
fonte