1

我正在使用具有多个 C# 项目和一些 C++ 项目的 Visual Studio 2008 解决方案,并希望使用构建后事件来执行一些第 3 方供应商命令行工具。多个项目需要这些构建后事件。

我可以硬编码命令行上需要的路径名和其他文件,但我真的更喜欢更灵活的东西。也许:

$(ToolsDir)\$(PackageBuilder) $(ThirdPartyDllFolder) $(SharedOutputFolder)

当我为 UNIX 开发并使用 makefile 执行构建时,我能够在高级 makefile 中定义一个变量并让子 makefile 继承它。通过这种方式,我可以让所有输出到一个特定的地方,或者在一个特定的地方寻找一个图书馆,等等。

是否有可以使用 Visual Studio 解决方案完成的等效操作,例如我可以定义环境变量之类的内容,然后在项目级别的构建后事件中引用它?

编辑:我现在正在使用 Windows 环境变量,但除了下载代码并构建它之外,我更喜欢不需要设置的东西。

4

2 回答 2

1

您是否考虑过 Windows 中的环境变量?我知道这并不完全相同,但您可以使用批处理文件设置它们并在构建后执行该批处理文件。

于 2009-05-19T14:46:24.157 回答
1

不久前我有一个类似的问题。我的第一个“解决方案”是创建一个工具,该工具在开发人员从存储库中获得第一个“get”时构建并运行。它不漂亮,是一个额外的步骤 - 但只有一次。

我放弃了,现在我们有了另一种方法。我们将第三方工具放在 svn 存储库(与我们的源不同的存储库)中,并且需要一个特定的层次结构和名称来说明该存储库相对于我们代码库根的位置。通过这种方式,我们可以在构建后的步骤或其他部分中自信地使用相对路径。

我同意这是 MS 构建工具的一个弱点。

于 2010-02-01T20:54:21.067 回答