3

我们正在实施 Team Build,并且知道我们需要编写 MSBuild 脚本来构建我们的旧版 VB 6 应用程序。它被配置为使用二进制兼容性,我们偶尔会破坏兼容性,我们希望我们新的自动化构建过程能够自动破坏兼容性。

任何人都知道如何做到这一点,或者甚至可能吗?

或者,我知道中断只是将兼容性更改为不兼容,编译,更改为二进制并重新编译。如果有人知道如何从命令行更改兼容性,这也会有所帮助。

4

4 回答 4

2

关于从兼容性更改为不兼容,我通过使用 Unix 风格的工具(sed、awk 和/或 perl)编辑项目文件来完成类似的操作。不要更改原始项目文件,而是生成一个新的/临时项目文件,并使用它进行构建。这是一个例子:

sed -e "s/CompatibleMode=0/CompatibleMode=2" <myProj.vbp >tmpProj.vbp

您可以将此技术用于其他目的,例如将版本号插入项目文件。

于 2009-01-28T21:47:36.470 回答
1

/d 开关允许您在编译时替换项目属性值。尝试

VB6 /MAKE c:\Some.vbp /outdir c:\somedir\ /d CompatibleMode="0"
于 2009-01-28T21:59:23.233 回答
1

这有效:

VB6 /MAKE c:\Some.vbp /outdir c:\somedir\ /d CompatibleMode="0" CompatibleEXE32=""

于 2009-04-30T09:00:49.353 回答
0

我不确定上述任何解决方案是否有效。我们的产品也有同样的问题。我们必须编写一个 vb 项目(也用作插件)来破坏兼容性并构建项目。vb 项目,读取现有的 VB 文件,生成一个新的 vbp 文件,其中包含项目兼容性设置和生成的 dll 的新目标。目标将是 ref-dll 所在的同一文件夹。一旦构建了 dll,旧的 dll 将被删除,新的 red-dll 被重命名以匹配旧的。最后,所有临时文件都将被删除。vb 项目有一个公开的函数,它接受一个参数,即 vbp 文件。这可以从 vb 脚本运行。所以基本上命令行参数是

BuildRefDll.vbs <my.vbp>
vb6.exe /make <my.vbp>
于 2010-07-13T16:04:52.660 回答