2009-12-16 6 views
1

생성 된 pdb 파일이없는 릴리스 빌드를 생성하려고합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Properties를 선택한 다음 Build 탭으로 이동 한 다음 Advanced ... Butoon으로 이동하여 Debug Info를 none으로 변경하는 방법을 제안하는 수많은 게시물을 보았습니다. 이 모든 것이 작동하지만, ~ 25 개의 프로젝트가 들어있는 ~ 50 개의 솔루션을 빌드 할 때이 작업을 수행해야합니다! 다른 게시물은 적절한 .csproj 파일을 편집하는 것을 언급하지만, 많은 프로젝트에서이 작업은 오랜 시간이 걸릴 것입니다. TFSBuild.proj 파일을 통해이를 수행 할 수있는 방법이 있습니까?빌드 정의 파일에서 제어 pdb 파일 출력

TFSBuild.proj 파일에 행운을 넣어 다음을 추가하려고했습니다. anycpu를, 없음, 거짓,하지만 난 여전히 $ (OutputDir) 폴더의 .pdb 파일을 참조 |

<PropertyGroup> 
    <Configuration>Release</Configuration> 
    <Platform>AnyCPU</Platform> 
</PropertyGroup> 

<PropertyGroup> 
    <DebugSymbols>false</DebugSymbols> 
    <DebugType>none</DebugType> 
    <Optimize>true</Optimize> 
</PropertyGroup> 

다음 줄 릴리스를 출력합니다. 사전에

<Message Text="$Configuration|Platform): $(Configuration)|$(Platform)" /> 
<Message Text="DebugType is: $(DebugType)"/> 
<Message Text="DebugSymbols is: $(DebugSymbols)"/> 

감사합니다, URVI

+0

왜 PDB를 생성하지 않으시겠습니까? 그냥 골동품. –

답변

0

I 나는 완전히 확실하지 (팀 빌드가 설치되지 않은),하지만 당신은 TFSBuild의 poject 이러한 속성을 변경할 때, 그들이 할 가능성이 높다 실제 솔루션/프로젝트는 다른 MSBuild 작업을 시작하여 빌드되고 Microsoft.TeamFoundation.Build.targets의 책임 대상은 해당 속성을 작업에 전달하지 않으므로 실제 프로젝트 파일로 전파되지 않습니다. (이것이 당신의 빌드 시나리오를 사용하는 것 경우 다시 잘 모르겠어요하지만 아이디어는 동일) 예를 들어

,이 전술 파일의 대상 "CallCompile"입니다 :

<Target Name="CallCompile" DependsOnTargets="$(CoreCompileDependsOn)"> 
    <!-- Pass in all properties that users might want during the course of the compile targets. --> 
    <MSBuild Projects="$(MSBuildProjectFile)" 
      Properties="a lot of properties, but not DebugSymbols etc" 
      Targets="CoreCompile"> 
    </MSBuild> 
</Target> 

그래서 당신은 는 대상 파일에 원하는 속성을 추가로 도망,하지만 수 있습니다

  • 당신이
  • 를 업그레이드하면 그 파일을 매번 변경해야 의미
  • 모든 프로젝트에 대해 원하는 동작이 아닐 수도 있습니다.
  • 마지막으로 중요한 것은 프로젝트 파일에 DebugSymbols/...도 포함되어 있으면 파일의 속성 값이 MSBuild 작업에서 전달한 값보다 우선하므로 결국 당신은 여전히 ​​당신이 원하는 것을 실현하려하는

방법 중 하나를 처리하기 위해 모든 프로젝트 파일을 변경해야 할 특정 디렉토리에있는 모든 * .csproj 파일을 나열 선택의 여지가 귀하의 언어로 스크립트를 작성하는 것입니다 , true를 false로 바꾸기 위해 각 파일을 수정합니다. 또는 더 빨리 : 탐색기에서 * .csproj를 검색하고 편집기에서 모든 파일을 한 번에 열어 모든 열린 파일에서 찾기/바꾸기를 수행하십시오.