gpt4 book ai didi

MSBUILD 无法强制包目标的 PackageLocation

转载 作者:行者123 更新时间:2023-12-02 12:01:07 24 4
gpt4 key购买 nike

我正在尝试从 msbuild 为我的 Web 服务构建部署包,就像在 Visual Studio 中右键单击项目文件一样。

包创建良好,并放置在项目文件源目录下的/obj/Release/Packages 文件夹中。

您应该能够通过在项目文件内的 PropertyGroup 中设置 PackageLocation 属性来指定创建该包的位置。但是,这对我不起作用。它仍然将包放在源目录下的/obj/Release/Packages 中。

这是我的项目文件中的片段:

  <Import Project="$(SrcTreeRoot)\Build\TaskInit.Tasks" />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="$(SrcTreeRoot)\Build\TaskOverrides.Tasks" />
<PropertyGroup>
<Platform>Any Cpu</Platform>
<Configuration>Dev</Configuration>
<PackageLocation>$(PackageOutputDir)\MatrixOnCdsService\MatrixOnCdsService.zip</PackageLocation>
<PackageAsSingleFile>True</PackageAsSingleFile>
<EnablePackageProcessLoggingAndAssert>True</EnablePackageProcessLoggingAndAssert>
<!--OutDir>$(PackageOutputDir)\MatrixOnCdsService\</OutDir-->
</PropertyGroup>

我们还使用具有以下部分的 MasterBuild.proj:

    <PackageProject Include="..\Source\AnalysisSuite\MatrixOnCdsService\MatrixOnCdsService.csproj"/>

...

<Target Name="Package">
<MSBuild Projects="@(PackageProject)" Targets="Package" Properties="Platform=$(Platform);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageLocation);"/>
</Target>

TaskInit.tasks 是我们自己的自定义导入文件,其中包含 PackageOutputDir 属性,我们用它来告诉项目将包放在哪里。

我的问题是,为什么即使指定了 PackageLocation 之后,包仍然被放置在/obj/Release/Packages 文件夹中?

最佳答案

将您拥有的属性组粘贴到目标中:

<Target Name="SetValues">
<PropertyGroup>
<Platform>Any Cpu</Platform>
<Configuration>Dev</Configuration>
<PackageLocation>$(PackageOutputDir)\MatrixOnCdsService\MatrixOnCdsService.zip</PackageLocation>
<PackageAsSingleFile>True</PackageAsSingleFile>
<EnablePackageProcessLoggingAndAssert>True</EnablePackageProcessLoggingAndAssert>
<!--OutDir>$(PackageOutputDir)\MatrixOnCdsService\</OutDir-->
</PropertyGroup>
</Target>

然后将其添加为您的包目标的 DependsOnTarget,我认为您将传递您的值。

例如<Target Name="Package" DependsOnTargets="SetValues">

关于MSBUILD 无法强制包目标的 PackageLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com