当前,我有一个项目A(64位),它引用了项目B,C和D(全部为32位)。然后设置Copy Local = True
,以便编译所有项目并将二进制文件复制到项目A的bin
文件夹中。二进制文件B.exe
,C.exe
和{{1} }全部作为D.exe
的子进程运行。但是Visual Studio抱怨:
正在构建的项目“ AMD64”的处理器体系结构与参考“项目B”“ x86”的处理器体系结构之间不匹配。这种不匹配可能会导致运行时失败。请考虑通过Configuration Manager更改项目的目标处理器体系结构,以使项目和引用之间的处理器体系结构保持一致,或者依赖具有与项目目标处理器体系结构相匹配的处理器体系结构的引用。
我应该忽略警告吗?还是应该发布构建事件来构建和复制其他项目?最好的方法是什么?
答案 0 :(得分:0)
编译子进程并复制二进制文件
AFAIK,恐怕您不能忽略此警告。这种不匹配可能会导致运行时失败。就像马里奥(Mario)说的on this thread:
64位可执行文件无法调用32位dll,反之亦然。除非你 实际上需要您的应用程序为64位,最简单的选择是 将其设置为目标x86。这仍然允许它同时在32和 Windows的64位版本。
要解决此警告,您可以为EXE项目A选择x86,或者仅使用构建后事件来构建和复制其他项目。查看this similar thread了解详情。
希望这会有所帮助。