我正在尝试让团队构建和构建代理首次为我们的应用程序工作。我在进行项目设置的方式上遇到了一些问题,这些问题对于我正在尝试清理的构建代理来说效果不佳。但是,我想问一下我“发现”的关于构建代理的问题以及它们如何工作以查看我是否正确,或者我是否只是遗漏了一些明显的东西,这会使它变得更容易。所以这里是我到目前为止遇到的事情,请告诉我我是对的还是纠正我错的地方:
1) 构建代理更改 $(Outdir) 宏以将所有内容发送到二进制文件。这意味着,如果我们有项目将我们的输出发送到一个自定义文件夹,如 ....\bin,并且一个引用 ....\bin 的后期构建步骤将失败,因为在构建代理上,输出不会' t 在 bin 中。我们现在必须使用构建后步骤从 $(Outdir) 复制到 ....\bin 以获得我们想要的输出。
2) Linker->General->Register Output 不适用于任何机器上的 x64 构建,因为它似乎不够聪明,无法将 system32 regsvr32 用于 x64,而是尝试使用 32 位版本。
3) Linker->General->Register Output 不适用于构建代理上的 Win32 构建,因为它不够聪明,无法使用 $(Output) 文件夹,而是尝试从 .\$(Platform)\ 注册文件$(Configuration)\filename.dll 但该文件不在构建代理上。
为了解决问题 2 和 3,我已切换到使用构建后注册步骤来注册我们的 dll,因此:
c:\windows\syswow64\regsvr32.exe $(TargetPath) //32 bit
c:\windows\system32\regsvr32.exe $(TargetPath) //64 bit
我很想找到一个宏来替换 syswow64 和 system32 ,它会根据平台使用正确的宏来使这些行相同(我更希望我的后期构建步骤对于所有平台和配置尽可能相同)但是到目前为止我找不到一个。
我发现不可能相信不会有一个 $(SystemFolder) 宏或类似的东西有人可以告诉我是否有一个以及它在哪里/它是什么?
还有其他类似的隐藏问题我可能会遇到吗?感谢你的帮助。