0

私は今これをスクリプトに持っていて、代わりに msbuild に入れたいと思っています。

msbuild /t:Build;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.XXX.xxx\XXXXX.XXXX.XXXXX1.csproj /p:Configuration="Release";_PackageTempDir=....\Deploy\XXXX1

msbuild /t:Build;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.XXX.xxx\XXXXX.XXXX.XXXXX2.csproj /p:Configuration="Release";_PackageTempDir=....\Deploy\XXXX2

これは msbuild スクリプトでどのように記述されますか? 私は1つのビルドでしかそれを行うことができませんでしたが、Deployフォルダーに異なるフォルダーを作成することはできませんでした.

誰か教えてくれませんか?

4

2 に答える 2

0

msbuild タスクを呼び出してプロジェクトをビルドするときに、OutDir (新しいプロジェクト) または OutputPath (一部の古いプロジェクト タイプ) をプロパティとして指定できます。または、「_PackageTempDir」など、必要なプロパティ

このようなもの:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="BatchMyProjects" ToolsVersion="4.0">

    <ItemGroup>
        <BuildMyProjects Include="XXXX-Project-1" />
        <BuildMyProjects Include="XXXX-Project-2" />
    </ItemGroup>

    <Target Name="BatchMyProjects" >
        <ItemGroup>
            <ProjectsToBuild Condition="Exists('SomeSourcePath\%(BuildMyProjects.Identity)/%(BuildMyProjects.Identity).csproj')">
                <ProjectName>SomeSourcePath/%(BuildMyProjects.Identity)/%(BuildMyProjects.Identity).csproj</ProjectName>
                <PublishSubFolder>%(BuildMyProjects.Identity)</PublishSubFolder>
            </ProjectsToBuild>
        </ItemGroup>

        <MSBuild Projects="%(ProjectsToBuild.ProjectName)" Targets="Build;PipelinePreDeployCopyAllFilesToOneFolder"
            Properties="Configuration=Release;
            OutDir=SomePathToDeploy/Deploy/%(ProjectsToBuild.PublishSubFolder)/;
            OutputPath= SomePathToDeploy/Deploy/%(ProjectsToBuild.PublishSubFolder)/;
            _PackageTempDir=SomePathToDeploy/Deploy/%(ProjectsToBuild.PublishSubFolder)/
            " />
    </Target>
</Project>

また、この同じ例の要点を作成しました

于 2012-10-12T08:23:26.463 に答える
0

これは機能しますが、それは少し奇妙に思えます。あなたが言ったように私はむしろそれを働かせます

<Target Name="testar" >
    <MSBuild Projects="..\xxxxxx\xxxxxx1.csproj" Targets="Build;PipelinePreDeployCopyAllFilesToOneFolder"   Properties="Configuration=Release;_PackageTempDir=../../Deploy/xxx1/"/>
    <MSBuild Projects="..\xxxx\xxxxxx2.csproj" Targets="Build;PipelinePreDeployCopyAllFilesToOneFolder" Properties="Configuration=Release;_PackageTempDir=../../Deploy/xxx2/"/>
</Target>
于 2012-10-12T11:34:50.430 に答える