gpt4 book ai didi

MSBuild Copy 任务第一次不复制文件

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

我创建了一个 build.proj 文件,其中包含一个复制构建完成后将生成的文件的任务。问题是这些文件在第一次时不会被复制,我必须在 build.proj 上再次运行 msbuild 才能复制这些文件。请任何人告诉我以下 build.proj 文件有什么问题:

<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>

<SourcePath Condition="'$(SourcePath)' == ''">$(MSBuildProjectDirectory)</SourcePath>

<BuildDir>$(SourcePath)\build</BuildDir>

</PropertyGroup>

<ItemGroup>
<Projects
Include="$(SourcePath)\src\myApp\application.csproj">
</Projects>
</ItemGroup>

<Target Name="Build">
<Message text = "Building project" />
<MSBuild
Projects="@(Projects)"
Properties="Configuration=$(Configuration)" />
</Target>

<ItemGroup>
<OutputFiles Include ="$(MSBuildProjectDirectory)\**\**\bin\Debug\*.*"/>
</ItemGroup>

<Target Name="CopyToBuildFolder">
<Message text = "Copying build items" />
<Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(BuildDir)"/>
</Target>

<Target Name="All"
DependsOnTargets="Build; CopyToBuildFolder"/>

</Project>

最佳答案

解析脚本时会评估项目组。那时你的文件还不存在。为了能够找到文件,您必须从目标中填充项目组。

  <!-- SQL Scripts which are needed for deployment -->
<Target Name="BeforeCopySqlScripts">
<CreateItem Include="$(SolutionRoot)\04\**\Databases\**\*.sql">
<Output ItemName="CopySqlScript" TaskParameter="Include"/>
</CreateItem>
</Target>

此示例使用 Include 属性中的表达式创建名为“CopySqlScript”的 ItemGroup。

编辑:

现在我可以阅读您的脚本:在 CopyToBuildFolder 目标中添加 CreateItem 标记

关于MSBuild Copy 任务第一次不复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606605/

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