2009-10-08 3 views
2

우리의 빌드 서버 몇 시간 동안 다음과 같은 속성을 사용하고있다만들기는 IDE 빌드 출력 하나의 폴더에 바이너리 및 해결 심판의

모든 출력이 해결 할 수도 공통 폴더로 이동하게
OutputPath=c:\output; 
OutputDir=c:\output; 
OutDir=c:\output; 
ReferencePath=c:\output; 
AdditionalLibPaths=c:\output 

같은 폴더에 대한 참조.

  1. 그것을 최적화 로컬 를 구축 끝났어 및 복사 로컬 내가 때문에 및 선박

을 압축 할 수 있습니다 내가 어떻게라도 일반적인 폴더에있는 모든 내 DLL의 필요

  • 을 참조하기 때문에이 위대한 작품 이 기능은 빌드 상자에서 훌륭하게 작동합니다. 개발자들에게 동일한 경험을 제공하고 싶습니다. 우리의 IDE 빌드가 같은 방식으로 동작하기를 바랍니다.

    즉, 개발자가 항상 사용하는 (작업 솔루션 빌드, 프로젝트 빌드) 작업 흐름을 원하는대로 설명한 것처럼 빌드 상자에서 발생합니다.

    VS.Net 외부 도구를 원하는 속성으로 선택한 프로젝트에서 msbuild를 호출하는 배치 파일에 만들도록 팀에 요청하면이 작업을 쉽게 수행 할 수 있습니다. 그러나 이상적으로는 워크 플로를 변경하지 않아도됩니다. 사람이 다른 사람이 일을하는 경우

    나는

    • 을 알고 싶어?
    • 가장 좋은 방법은 무엇입니까?
    • 내가 외부 도구 또는 배치 파일을

    감사

  • 답변

    0

    우리는 같은 일을하는을 매 csproj 파일을 편집하거나 사용할 필요가 않습니다. 모든 csproj 파일을 편집 중입니다. 꽤 많은 배관 공사가 있지만 작동합니다.

    가능하면 어셈블리 수를 최소로 줄이십시오. Csproj에 필요한

    편집 :

    <ProjectReference Include="..\Core\Core.csproj"> 
         <Project>{9C81B684-40CC-472A-804D-7C0F963315F5}</Project> 
         <Name>Core</Name> 
        </ProjectReference> 
    

    이 같은 일반 참조가 될해야 :

    <Reference Include="Core, Version=1.0.0.0, Culture=neutral, 
        processorArchitecture=MSIL"> 
         <SpecificVersion>False</SpecificVersion> 
         <HintPath>..\..\Deploy\$(Configuration)\Core.dll</HintPath> 
        </Reference> 
    

    는 있지만 - 상대 경로 폴더를 배포하는 속성으로 정의되어야한다.

    하지만 저는 빌드 전문가가 아닙니다. 그냥 정보 공유. :)

    +0

    매번 편집하는 내용의 예를 제공해 주시겠습니까? 일괄 검색을 수행하고 기존 프로젝트에 grepWin을 사용하여 대체 한 다음 새 프로젝트 템플릿을 만들 수 있습니까? 나는> 500 프로젝트를 가지고 있기 때문에 나는 높은 유지 보수를 가지고있다. – Ryu

    +0

    Oh my god ... 500 프로젝트. 그렇다면이 옵션이 아닐 수도 있습니다. 검색 및 바꾸기 도구가 너무 정교해야합니다. –

    1

    프로젝트가 출력을 OutDir에 보내고 동일한 경로에서 참조를 확인하도록하려면 OutDir 및 ReferencePath를 모두 설정해야합니다. foo.targets 파일에 넣고

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 
        <PropertyGroup> 
          <OutDir>c:\output\</OutDir> 
          <ReferencePath>$(OutDir);$(ReferencePath)</ReferencePath> 
        </PropertyGroup> 
    </Project> 
    

    , 모든 프로젝트에 있음을 가져 : 당신은 공통의 목표와 함께 파일을 추가 할 수 있습니다.

    관련 문제