Msbuild-在不同文件夹中生成输出

Msbuild-在不同文件夹中生成输出,msbuild,msbuild-task,msbuild-4.0,Msbuild,Msbuild Task,Msbuild 4.0,我现在在一个脚本中有了它,并希望将它放在一个msbuild中 msbuild/t:生成;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.XXX.XXX\XXXXX.XXXXX.XXXXX1.csproj/p:Configuration=“Release”_PackageTempDir=..\Deploy\xx1 msbuild/t:生成;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.

我现在在一个脚本中有了它,并希望将它放在一个msbuild中

msbuild/t:生成;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.XXX.XXX\XXXXX.XXXXX.XXXXX1.csproj/p:Configuration=“Release”_PackageTempDir=..\Deploy\xx1

msbuild/t:生成;PipelinePreDeployCopyAllFilesToOneFolder XXXXX\XXXX.XXX.XXX\XXXXX.XXXXX2.csproj/p:Configuration=“Release”_PackageTempDir=..\Deploy\xx2

如何将其写入msbuild脚本中?我只在一个构建中成功地实现了这一点,但在部署文件夹中创建了不同的文件夹,这是我无法做到的

有人可以教我吗?

在调用msbuild任务生成项目时,可以指定OutDir(新项目)或OutputPath(某些旧项目类型)作为属性。或者任何你想要的属性,比如你的“\u 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>

SomeSourcePath/%(BuildMyProjects.Identity)/%(BuildMyProjects.Identity).csproj
%(BuildMyProjects.Identity)

我还创作了这部作品,但看起来有点奇怪。我认为她能像你提到的那样工作

<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>

你说的“奇怪”是什么意思?