gpt4 book ai didi

windows - 生成具有数百个项目的 VS 2010 依赖项的解决方案

转载 作者:可可西里 更新时间:2023-11-01 09:26:15 25 4
gpt4 key购买 nike

我们有几百个 visual studio 项目文件,我需要将它们组合成一个构建解决方案。我们目前有一个使用 rake 的自定义 ruby​​ 脚本来执行此操作。但是很脆弱,只允许一些 visual studio 宏($(TargetDir)、$(TargetName) 等...)通过,其余的则失败。再加上 Ruby 的语法像 Perl 一样让我不快:方法不对。

所以我的问题是,给定一个目录,是否有一个工具可以递归地查找所有 .vcxproj 和 .csproj 文件并生成具有依赖项的解决方案文件?当我说“具有依赖性”时,它意味着某些项目需要先于其他项目构建。我在这里找到了一些关于堆栈溢出的其他帖子,这些帖子指向一个生成解决方案文件的工具:但它不会生成依赖项。因此,如果没有依赖关系,任何解决方案创建工具都是完全无用的。有谁知道可以做到这一点的东西吗?

如果不是解决方案文件,有谁知道会发出依赖列表的东西吗?

附言在任何人问之前:手动创建解决方案文件是完全不可能的。我们的项目文件太多了。

最佳答案

So my question is, given a directory is there a tool that will recursively find all all the .vcxproj and .csproj files and generate a solution file with dependencies?

没有。

你的要求很合理;您解决问题的方法非常合理。不幸的是,这些工具并没有跟上您的步伐。 (我们遇到了同样的问题。)

您将不得不自己编写脚本,或者以其他方式自定义工具。我们就是这么做的。我见过的成功方法包括:

  1. 生成 *.vcproj/*.sln 从“引用项目定义”,使用 CMakeQMakeScons 等工具,或吉卜赛。我们的主要系统目前位于在 Scons 上,使用我们自定义的 Python导航这些依赖项的代码,根据项目生成解决方案(蜘蛛依赖)。经过默认情况下,我们生成一个“完整”每个项目的解决方案(包括所有必需的配套项目),加上“掌握所有项目”解决方案。它工作得很好。但,这是需要努力的定制工作, 我们将 Scons 扩展到 描述我们的项目(但我们只是 依赖于 Scons 的生成 *.sln*.vcproj).

  2. 编写自定义工具来“查找”这些依赖项解析所有 *.vcproj 文件你的工作区。这是工作,但可以完成。导航这些文件可能会“棘手”,但使用 GUID 作为散列键来生成这些依赖项的“足够好”的解决方案可能没问题。

我完全同意你的看法:当你超越“简单”(例如,许多项目,是的,我们也有数百个)时,手动维护这种类型的东西(项目依赖项)非常困难。

对不起。 MSVS 是一个相当不错的 IDE(用于迭代开发),也是一个糟糕的构建配置管理系统,并不是为了完成我们正在谈论的事情而设计的。

因为我关心您的理智和您永恒的灵魂,请不要尝试在 MSBuild 中编写您的自定义解决方案。

关于windows - 生成具有数百个项目的 VS 2010 依赖项的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966283/

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