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 脚本中?我只设法通过一个构建来做到这一点,但是在我无法做到的 Deploy 文件夹中创建不同的文件夹。

有人可以教我吗?

4

2 回答 2

0

调用 msbuild 任务构建项目时,可以将 OutDir(新项目)或 OutputPath(一些旧项目类型)指定为 Properties。或者你想要的任何属性,比如你的“_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 回答