gpt4 book ai didi

c# - MSbuild 构建顺序问题 - 首先是预构建步骤或首先是依赖项目

转载 作者:可可西里 更新时间:2023-11-01 08:19:44 25 4
gpt4 key购买 nike

我有一个项目 A 依赖于项目 B。项目 A 有一些预构建任务依赖于项目 B 的一些生成文件。当我在 Visual Studio 中构建时,没问题。但是当使用 MSBuild.exe 时,就会出现问题,因为构建顺序是:

  • A 的预构建步骤 <- 失败,因为 B 尚未编译
  • B 已编译 <- 预计首先执行
  • A编译

这是使用 MSBuild 的预期行为吗?有没有办法告诉 MSBuild 在 A 的预构建步骤之前先执行 B?

我正在使用 VS2010 C# 和 C++/CLI。我不认为是否提供额外的信息,但它是这样称呼的:

Running process (C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBUILD.exe "..\..\..\dev\build\MyProj.sln" /t:Clean /p:Configuration=Release;Platform=Win32)

最佳答案

简答

删除您的构建事件,并将类似以下内容添加到您的项目 (.csproj):

<Target Name="AfterResolveReferences">
<Exec Command="echo helloworld" />
</Target>

更多信息

您可以在此处阅读有关自定义构建过程的信息:http://msdn.microsoft.com/en-us/library/ms366724%28v=vs.110%29.aspx

Before Build 事件在 ResolveReferences 之前触发,因此如果您引用的项目在您的项目的 BeforeBuild 事件发生时尚未构建,那么您的 BeforeBuild 事件将失败。

要克服这个问题,您应该使用不同的入口点来自定义构建过程。在上面的示例中,我使用 AfterResolveReferences,因为这将确保您引用的所有项目都已构建。

关于c# - MSbuild 构建顺序问题 - 首先是预构建步骤或首先是依赖项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145230/

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