确保在项目的其余部分之前构建子目录

本文关键字:构建 子目录 余部 项目 确保 | 更新日期: 2023-09-27 18:17:27

在一个非常大的c#项目中工作,有多个子部分。其中一个部分创建dll并将其放置在特定位置以供使用。根据最近的变化,我们现在正试图将这些dll与每个根构建调用一起放置。(过去是手动放置每个里程碑左右)

我引用了dirs。正在编译创建和放置dll的子目录的Proj文件。这一切都很好。问题是,由于这样或那样的原因,项目的其他部分在该部分完成编译之前就开始查找这些dll。

我如何确保在开始编译其余部分之前编译项目的这一部分并放置dll ?我对它们有一个非常简单的了解,但真的不知道如何使用它们来做我想做的事情。

感谢所有的帮助!

确保在项目的其余部分之前构建子目录

详细阅读Build Targets和MakeDir任务。

您将希望在计划在默认构建任务之前发生的任务中包含创建新目录的逻辑。

<Target BeforeTargets="Build" Name="CreateRequiredFolder" Condition="!EXIST('$(MyDirectory)')" >
    <MakeDir Directories="$(MyDirectory)" />
</Target>

注意我们是如何在构建之前使用BeforeTargets来调度它的,并且如果所需的文件夹已经存在,则目标上的条件导致它被跳过。

我是这样做的

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="......." InitialTargets="BuildWebshared">

<ItemGroup>
  <WebsharedProjects Include="..'location'dirs.proj" />
</ItemGroup>
<Target Name="BuildWebshared">
  <MSBuild
    Projects="@(WebsharedProjects)"
    Targets="Build">
  </MSBuild>
</Target>
....