gpt4 book ai didi

c# - 是否可以强制 MSBuild 仅构建一次项目,而不考虑属性?

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:40 25 4
gpt4 key购买 nike

我目前正在将一个大型解决方案从旧的 csproj 文件格式迁移到新的 csproj 格式。我一次做几个项目,所以我有一个混合环境,一些项目使用旧项目文件格式,一些项目使用新项目文件格式。

我开始注意到一些构建失败是因为文件正在使用中。我的理论(基于 this answer )是 MSBuild 两次构建某些项目,因为属性不同(即新项目文件格式指定 TargetFramework 属性,而旧项目没有)。

似乎存在并发问题的项目是被其他项目引用的项目,其中引用项目在项目文件格式之间拆分。

我用来构建项目的命令是:

msbuild.exe /maxcpucount:6 /property:Configuration=Debug;Platform=x64 /t:Rebuild my.sln

在我能够将解决方案中的所有项目转换为新项目文件格式之前,有没有办法指示 MSBuild 只构建给定项目一次(无论属性如何)?

请注意,构建单线程确实可以解决并发问题,但这会显着降低构建速度,并且项目仍会构建多次。

最佳答案

这是一个 bug在 MSBuild 中从多目标项目引用 C++ CLI 项目时。看来他们正在解决这个问题。

要解决此错误,可以使用 GlobalPropertiesToRemove 属性从引用中删除该属性:

<ProjectReference Include="..\B.CppCLILibrary\B.CppCLILibrary.vcxproj" GlobalPropertiesToRemove="TargetFramework" />

关于c# - 是否可以强制 MSBuild 仅构建一次项目,而不考虑属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50144653/

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