【问题标题】:PreBuildEvent and project dependencies in MSBuildMSBuild 中的 PreBuildEvent 和项目依赖项
【发布时间】:2012-06-14 01:56:53
【问题描述】:

我遇到了一个棘手的 MSBuild 问题。有一个包含多个网站的解决方案文件。每个网站都需要一个通用项目的 MVC 视图和其他网站内容的副本。该公共项目从共享的组织空间复制文件。这是一个插图:

站点 A 组织共享

通过 .csproj 文件的 PreBuildEvent 执行文件复制。问题是 PreBuildEvent 命令在检测到的依赖项的构建事件被触发之前运行。所以这是事件的顺序:

1. 站点 A 已建成 一种。执行预构建步骤(从 Common 复制文件) 湾。共建 一世。执行预构建步骤(从 OrgShared 复制文件) ii.执行构建和构建后 C。执行构建和构建后 2. B站建成 一种。执行预构建步骤(从 Common 复制文件) 湾。执行构建和构建后

问题出现在步骤 1a。由于尚未执行 Common 预构建步骤,因此站点 A 不会收到间接来自 OrgShared 的文件。

如何在不依赖站点 A、B 和 C 直接从 OrgShared 复制的情况下有效解决此依赖问题?

【问题讨论】:

    标签: asp.net msbuild projects-and-solutions


    【解决方案1】:

    想通了。在 Common 之前建造站点 A 的原因是因为在 .sln 文件中的排序。更改解决方案中的顺序后,我能够让 PreBuildEvent 首先在 Common 中运行。

    之前:

    Microsoft Visual Studio Solution File, Format Version 11.00
    # Visual Studio 2010
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site A", "SiteA.csproj", "{6E7FAE47-74A6-4740-9AC5-9599E850E834}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common.csproj", "{C510B337-7459-4494-BBCB-B79FECD2AA66}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site B", "SiteB.csproj", "{F3CAFCE9-A96D-4EE5-BE09-420E27344345}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site C", "SiteC.csproj", "{A50C5DE2-4846-40F2-86B1-B103F413DE0F}"
    EndProject
    

    之后:

    Microsoft Visual Studio Solution File, Format Version 11.00
    # Visual Studio 2010
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common.csproj", "{C510B337-7459-4494-BBCB-B79FECD2AA66}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site A", "SiteA.csproj", "{6E7FAE47-74A6-4740-9AC5-9599E850E834}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site B", "SiteB.csproj", "{F3CAFCE9-A96D-4EE5-BE09-420E27344345}"
    EndProject
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Site C", "SiteC.csproj", "{A50C5DE2-4846-40F2-86B1-B103F413DE0F}"
    EndProject
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多