代码之家  ›  专栏  ›  技术社区  ›  Paul

MS Build&Cruise Control-将项目中的引用从32位版本替换为64位版本

  •  0
  • Paul  · 技术社区  · 15 年前

    我有一个解决方案,其中包含一个引用了创建PDF文件的库的项目。PDF库有32位版本和64位版本。在开发过程中,项目引用32位版本。

    我正在32位机器上开发。每次我在源代码管理中检查某些内容时,巡航控制都会触发一个构建。生成服务器是32位计算机。

    不幸的是,代码还必须部署到64位机器上。我的所有代码都是在64位机器上管理和运行良好的,所以正是这个PDF库导致了一个问题。

    我想我需要创建一个巡航控制项目,这个项目在签入时打开项目文件,将对32位PDF dll的引用替换为对64位版本的引用,然后执行构建(为64位机器创建一个准备好的构建)。

    有人对如何做这件事有什么建议吗?我最初的计划是创建一个预构建步骤,比如:

    [预构建] [执行] [basedirectory]E:\dev\commoncode[/basedirectory] [可执行]replace32dllwith64dll.cmd[/executable] [/Exc] [预建]

    它运行一个.cmd文件来进行替换,但我不知道如何将cmd文件放在一起,也不确定这是否会起作用…也许有一种更标准的方法来做这种事情?

    任何提示都会很感激…

    谢谢,

    保罗

    1 回复  |  直到 15 年前
        1
  •  0
  •   Paul    15 年前

    好吧,设法解决了这个小难题:

    基本上,我创建了一个快速而脏的vbscript,它只打开我的项目文件,并用指向64位dll的路径替换指向32位dll引用的路径。我使用了一个批处理文件来启动vbscript。

    然后,我更新了巡航控制配置文件,告诉构建过程在msbuild开始工作之前执行批处理文件。

    对我来说似乎很好…

    一份完整的报告,包括进一步的细节和实际的脚本:

    http://webpangea.blogspot.com/2009/09/cruise-control-with-msbuild-switching.html

    希望它能帮助别人。

    保罗