我创建了一个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>
Run Code Online (Sandbox Code Playgroud)
thi*_*ijs 22
解析脚本时会评估项目组.那时你的文件还没有.为了能够找到您必须从目标中填充项目组的文件.
<!-- SQL Scripts which are needed for deployment -->
<Target Name="BeforeCopySqlScripts">
<CreateItem Include="$(SolutionRoot)\04\**\Databases\**\*.sql">
<Output ItemName="CopySqlScript" TaskParameter="Include"/>
</CreateItem>
</Target>
Run Code Online (Sandbox Code Playgroud)
此示例使用Include属性中的表达式创建名为"CopySqlScript"的ItemGroup.
编辑:
现在我可以阅读您的脚本:在CopyToBuildFolder目标中添加CreateItem标记
| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |