2012-07-09 4 views
9

Visual Studio 2012 RC를 사용하여 C# 솔루션을 사용하고 있습니다. 모든 구성 관련 설정은 단일 .props 파일에 저장되며 모든 .csproj 파일에 포함됩니다.Visual Studio가 내 csproj에 속성을 계속 추가합니다. 왜?

아직 VS는 앞이 권리를 넣어 주장은 다음과 같습니다 : 왜 그

<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" /> 

입니까?

는 참고로, 내 일반적인 파일은 다음과 같습니다 : 필요한 경우

+1

간단히 대답하면 Microsoft는 그러한 csproj 파일 사용자 지정을 수행하지 않을 것이라고 생각하지 않습니다. 때로는 프로젝트 파일을 약간 (행운에 따라) 사용자 정의 할 수 있지만 대부분의 경우 자신 만의 문제가 될 수 있습니다. –

답변

0

http://pastebin.com/Uued1XY0 그래서 당신은 이러한 설정을 재정의 할 수 있습니다. 가져 오기가 시작된 경우 Visual Studio의 속성이 우선 적용됩니다. MSBuild에서 마지막 정의가 승리하여 사용됩니다. 이것은 좋은 일입니다. 오류가 발생 했습니까? 아니면 그냥 맘에 안들니?

+0

프로젝트를 다시로드 할 때마다 임시 경로가 변경되기 때문에 나는 그것을 좋아하지 않습니다. 버전 관리 이후 항상 모든 프로젝트에 변화가 있었기 때문에 매우 짜증이났습니다. –

0

프로젝트에서을 (를) 지정했습니다. 특성 파일에는 BaseIntermediateOutputPath가 있습니다. 값을 지정하지 않으면 기본에서 파생됩니다.

경로를 지정하지 않으면 BaseIntermediateOutputPath에서 파생 된 전체 중간 출력 경로입니다. 예를 들어, \ obj \ debug. 이 property를 재정의 (override)하면, BaseIntermediateOutputPath를 설정해도 효과는 없습니다.

은 참조 : MSBuild에서이 나쁜 경로를 지정되었을 경우에 http://msdn.microsoft.com/en-us/library/bb629394.aspx

5

그 IntermediateOutputPath 년대를 삽입 할 수 있습니다.

출력 폴더에 대해 SolutionDir 다음에 여분의 불필요한 슬래시가 있습니다.

무엇 (여분의 슬래시 주) 우리를 위해 작동하지 않는 :

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

무슨 짓을 작업 : 특정 사건을 해결하는 데 도움이

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

는, 진단 MSBuild를 출력 켜기 시도 도구 -> 옵션 -> 프로젝트 및 솔루션 -> 빌드 및 실행 -> MSBuild 프로젝트 로깅 출력에서 ​​자세한 정보를 얻을 수 있습니다. 그런 다음 생성 된 폴더 (예 : "Temp")를 검색하십시오.

일반적인 proj/props/targets 파일을 사용하는 것은 좋은 생각이지만 Visual Studio와의 전투가 약간 필요합니다.

+0

문제 해결 단계가 나에게 적합하지 않습니다 (Visual Studio 2013). 빌드시보다로드하는 동안 프로젝트 파일이 VS에 의해 수정되므로 진단 빌드 출력이 도움이되지 않습니다. – DannyMeister