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

标签 windows visual-studio-2010 build dependencies

我们有几百个 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/

相关文章:

build - 如何从 TFS 2010 Team Build 中启动外部进程来编译 Visual Basic 项目

c++ - C/C++ iTunes API 在哪里? (不是 COM!)

c++ - 在托管 C++ 测试中使用 TestContext.TestName

C# 显示隐藏窗口

c# - 有没有办法在设计时用 Visual Studio 2010 中的所有属性初始化一个对象?

c++ - boost 变体 istringstream 和流错误

Java:One-jar Maven 插件资源

python - 使用 Python 的 Windows 桌面 GUI 自动化—— sleep 与紧循环

c# - 如何在 VS2010 中禁用此代码 View 设置?

c++ - 无法构建简单的 Boost XML 序列化示例