我正在努力让团队建设和构建代理首次为我们的应用程序工作。我遇到了一些问题,我们的项目设置方式不适合我正在尝试清理的构建代理。但是我想询问一下我发现的关于构建代理的问题以及它们如何工作以确定我是否正确,或者我是否只是错过了可以使其更容易的明显事物。所以这是我到目前为止所发现的事情,请告诉我,如果我是正确的或纠正我错在哪里:
1)构建代理更改$(Outdir)宏以将所有内容发送到二进制文件。这意味着如果我们有项目将输出发送到自定义文件夹(如.... \ bin),以及引用构建步骤引用.... \ bin,则构建步骤将失败,因为在构建代理上输出赢了'在垃圾箱里。我们现在必须使用post build步骤从$(Outdir)复制到.... \ bin以获取我们想要的输出。
2)Linker-> General->寄存器输出不适用于任何机器上的x64构建,因为它似乎不够智能,不能使用system32 regsvr32 for x64,而是尝试使用32位版本。
3)Linker-> General->注册输出不适用于构建代理上的Win32构建,因为它不够智能,无法使用$(输出)文件夹,而是尝试从中注册文件。 $(平台)\ $(配置)\ filename.dll但是构建代理上没有该文件。
为了解决问题2和3,我已经切换到使用帖子构建注册步骤来注册我们的dll,所以:
c:\windows\syswow64\regsvr32.exe $(TargetPath) //32 bit
c:\windows\system32\regsvr32.exe $(TargetPath) //64 bit
我很想找到一个替换syswow64和system32的宏,它会根据平台使用正确的一个来使这些行相同(我更喜欢让我的帖子构建步骤对所有平台和配置都相同可能)但到目前为止我找不到一个 我发现不可能相信没有$(SystemFolder)宏或类似的东西可以有人告诉我是否有一个以及它在哪里/它是什么?
还有其他类似的隐藏问题我可能会遇到吗? 谢谢你的帮助。