2017-12-01 2 views
1

팀 도시에서 실행되는 msbuild 아래에 있습니다. web.config를 제외하고 싶지만 할 수 없습니다. 아래 코드에서 코드를 추가했지만 작동하지 않는 것을 볼 수 있습니다. 내가 MSBuild를하고 인 TeamCity에서 완전히 초보자입니다msbuild가 포함 된 web.config

<property name="solution.dir" value="." /> 
<property name="SolutionFileName" value="MyProj.sln" /> 
<property name="projectfile" value="${solution.dir}\MyDir\Myproj.csproj" /> 
<property name="MSBuildPath" value="C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" /> 
<ItemGroup> 
<MyProjectReferences Exclude="web.config" /> 
</ItemGroup> 
<target name="build" depends="clean,UpdateBuildVersion,compile" /> 
<target name="clean" description="delete build artifacts"> 
    <property name="build.base" value="${solution.dir}/_deploy/" /> 
    <property name="dir.publish" value="${build.base}/publish" /> 
    <property name="dir.package" value="${build.base}/package" /> 
    <property name="project.fullversion" value="1.0.0.1" /> 

</target> 
<target name="compile" description="compile"> 

    <exec program="${MSBuildPath}" failonerror="true"> 
    <arg value="${projectfile}" /> 
    <arg line="/p:Configuration=Release" /> 
    <arg line="/p:UseWPP_CopyWebApplication=True" /> 
    <arg line="/p:PipelineDependsOnBuild=False"/> 
    <arg line="/t:Rebuild" /> 
    <arg line="/t:Package" /> 
    <arg line="/p:IncludeAppPool=true" /> 
    <arg line="/p:PackageLocation=${solution.dir}/../publish/package/Myproj.zip" /> 
    <arg line="/P:DeployIisAppPath=website/MyProj" /> 
    <!--<arg line="-skip:objectName=filePath,absolutePath=.*web\.config"></arg>--> 

    </exec> 
</target> 

누군가가 올바른 방향으로 날 지점 수 있습니까?

+0

btw : 전체 xml 빌드 스크립트가 포함되어 있지 않습니다. 마지막 파일이 아닌 전체 파일을 게시 할 수 있습니까? –

+0

@CJohnson 나는 관련 코드를 게시했다고 생각합니다. 나머지는 쓰레기 였고 주석 처리되었습니다. 닫는 태그가 누락 될 수 있지만 그게 내가 생각하는 것입니다 – Happy

답변

0

좋아, 시작하려면 빌드 구문은 사용하지 않는 것이 좋습니다. 그러나 당신은 msbuild를 처음 사용합니다. 그래서 저는 여러분이 여기에 우리에게 주신 것에 기초하여 여러분이 필요로하는 것을 해석하려고했습니다. 다시 여기에 질문이 내가 그들에게 대답하기 위해 최선을 다하겠습니다 경우

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="Choose something else here too"> 
    <PropertyGroup> 
    <SolutionDir>C:\Some\Path\Where\You\Keep\your\Solution\</SolutionDir> 
    <BuildDir>C:\Some\Path\where\your\build\goes\that\is\outside\of\your\repo\</BuildDir> 
    </PropertyGroup> 
    <ItemGroup> 
    <MyProject include="$(SolutionDir)MyDir\MyProj.csproj" > 
     <Properties>Condiguration=Release;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;IncludeAppPool=true;PackageLocation=$(SolutionDir);DeployIisAppPath=website\MyProj</Properties> 
    </MyProject> 
    </ItemGroup> 
    <Target name="clean"> 
    <!-- The best thing to do is to call msbuild with the clean target. --> 
    <MSBuild Projects="@(MyProject)" Targets="Clean" /> 
    <!-- Then delete anything else you want to --> 
    <Delete Files="" /> 
    <!-- I like to just delete the build directory for cleaning --> 
    <RemoveDir Directories="$(BuildDir)" /> 
    </Target> 

    <Target name="updateBuildVersion"> 
    <!-- Do what ever you need to here. --> 
    </Target> 

    <Target name="Build" DependsOnTargets="clean;updateBuildVersion"> 
    <MSBuild Projects="@(MyProject" Targets="Build" StopOnFirstFailure="true" /> 
    </Target> 
</Project> 

코멘트 : 그래서 여기

약간 재 해석 스크립트입니다.

+0

web.config를 삭제 하시겠습니까? – Happy

+0

web.config와 같은 파일이 MyProj.csproj 파일의 '항목'이 될 것으로 보입니다. 그 파일 (게시하지 않은 파일)은 web.config를 포함하거나 제외시키는 파일입니다. –

+0

나는 당신이 의미하는 것을 이해하지 못했습니다. MyProject exclude = "$ (SolutionDir) MyDir \ web.config"> – Happy

관련 문제