2

我有一个用 Pro*C(带有嵌入式 Oracle SQL 的 C)编写的应用程序,我在 VS2008 中使用自定义构建文件进行预处理。源是 .m4 格式(出于遗留原因 - 我会在某个时候摆脱它,但它在我的优先级列表中并不高)。.m4 由 M4 实用程序处理为 .pc(Pro*C 文件),然后由 Oracle ProC 实用程序转换为 .C 文件。

我们的客户端同时使用 Oracle 10 和 Oracle 11 客户端,因此我为每个数据库版本设置了一个项目,因为它们需要使用不同的 Oracle 版本构建。两个项目都使用相同的源代码——唯一的区别在于规则文件。

使用 VS2008 时,我在此过程中从未遇到任何问题。当我将项目移至 VS2010(将规则文件转换为 .xml、.props 和 .targets 文件)时,我开始收到构建错误,其中我的自定义构建规则为其中一个项目返回了错误代码。

有趣的是,每隔一次我“重建所有”,失败的项目和项目成功的切换(即第一次oracle10项目成功和oracle11项目失败,第二次oracle10失败和oracle11成功)。每次我构建时,成功的项目都会可靠地交替,尽管它似乎总是第一个要处理的项目(不确定为什么 Visual Studio 不会每次都从同一个项目开始)。

如果我单独构建每个项目,我没有任何问题。如果我创建解决方案级别的项目依赖项,无论哪个项目引用哪个,我都没有任何问题。

因此,尽管我找到了解决方法,但我很好奇是什么导致了这个问题的开始。

PS - 我对 StackOverflow 很陌生,所以如果我在问这个问题时遗漏了什么,我提前道歉。让我知道是否还有其他可以帮助解决问题的方法。

4

0 回答 0