2017-11-29 3 views
0

.msi를 토출하기 위해 TFS 서버에서 작업하는 빌드를 얻으려고합니다. 로컬 내가 실행됩니다 : 'setup.build'를 사용WFS 및 .build 파일로 TFS 빌드 정의

C:\Dev\Installer>msbuild /t:Build;PublishWebsite;Harvest;WIX setup.build 

을 :

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="3.5" DefaultTargets="Build" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup > 
    <WebSiteSource>..\FrontEnd\</WebSiteSource> 
    <SetupF>..\Setup\</SetupF> 
    <PublishF>publish\</PublishF> 
    <Publish>$(SetupF)$(PublishF)</Publish> 
    <WebSiteContentCode>WebSiteContent.wxs</WebSiteContentCode> 
    <WebSiteContentObject>WebSiteContent.wixobj</WebSiteContentObject> 
    <EnableProjectHarvesting>True</EnableProjectHarvesting> 
    <MsiOut>bin\Release\Dashboard.msi</MsiOut> 
    </PropertyGroup> 
    <!-- Defining group of temporary files which is the content of the web site. --> 
    <ItemGroup> 
    <WebSiteContent Include="$(WebSiteContentCode)" /> 
    </ItemGroup> 

    <!-- The list of WIX input files --> 
    <ItemGroup> 
    <WixCode Include="Product.wxs" /> 
    <WixCode Include="$(WebSiteContentCode)" /> 
     <WixCode Include="ProductUI.wxs" /> 
     <WixCode Include="IISConfiguration.wxs" /> 

    </ItemGroup> 

    <ItemGroup> 
    <WixObject Include="Product.wixobj" /> 
    <WixObject Include="$(WebSiteContentObject)" /> 
     <WixObject Include="ProductUI.wixobj" /> 
     <WixObject Include="IISConfiguration.wixobj" /> 

    </ItemGroup> 

    <Target Name="Build"> 
    <!-- Compile whole solution in release mode --> 
    <MSBuild 
     Projects="..\WebDashboard.sln" 
     Targets="ReBuild" 
     Properties="Configuration=Release;Platform=Any CPU" /> 
    </Target> 

    <Target Name="PublishWebsite"> 
     <!-- Remove complete publish folder in order to 
      be sure that evrything will be newly compiled --> 
     <Message Text="Removing publish directory: $(SetupF)"/> 
     <RemoveDir Directories="$(SetupF)" ContinueOnError="false" /> 
     <Message Text="Start to publish website" Importance="high" /> 
     <MSBuild 
      Projects="..\\FrontEnd\WebDashboard.csproj" 
      Targets="ResolveReferences;_CopyWebApplication" 
      Properties="OutDir=$(Publish)bin\;WebProjectOutputDir= 
          $(Publish);Configuration=Release;Platform=AnyCPU" /> 
    </Target> 
    <Target Name="Harvest"> 
    <!-- Harvest all content of published result --> 
     <Exec 
      Command='"$(WiX)bin\heat" dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)' 
      ContinueOnError="false" 
      WorkingDirectory="." /> 
    </Target> 
    <Target Name="WIX"> 
     <Exec 
      Command='"$(WiX)bin\candle" -ext WixIISExtension -dpublishDir=$(Publish) -dMyWebResourceDir=. @(WixCode, &apos; &apos;)' 
      ContinueOnError="false" 
      WorkingDirectory="." /> 
     <Exec 
      Command='"$(WiX)bin\light" -ext WixIISExtension -ext WixUIExtension -out $(MsiOut) @(WixObject, &apos; &apos;)' 
      ContinueOnError="false" 
      WorkingDirectory="." /> 


    <!-- A message at the end --> 
    <Message Text="Install package has been created." /> 
    </Target> 
    <Target Name="DeleteTmpFiles"> 
     <RemoveDir Directories="$(Publish)" ContinueOnError="false" /> 
     <RemoveDir Directories="$(SetupF)" ContinueOnError="false" /> 
     <Delete Files="@(WixObject);@(WebSiteContent)" /> 
    </Target> 
</Project> 

가 어떻게 TFS에 빌드 정의이 실행합니까? 나는 일반적인 명령 프롬프트를 사용하여 시도했지만 msbuild가 인식되지 않는다고 말합니다. 사용할 수있는 다른 프로그램이 있습니까? 아니면 누구나 msbuild 도구의 전체 경로를 알고 있습니까?

+0

개발자 명령 프롬프트를 사용해 보셨습니까? –

답변

0

는 설치의 위치로 '작업 폴더를'설정 고급에

다음
/t:Build;PublishWebsite;Harvest;WIX setup.build 

C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe 

및 인수에 명령 줄 작업 및 설정 '도구'를 사용하여 고정 .build 파일.