管理、构建和部署32位和64位版本的桌面C#应用程序的最佳实践

管理、构建和部署32位和64位版本的桌面C#应用程序的最佳实践,c#,.net,version-control,msbuild,build-automation,C#,.net,Version Control,Msbuild,Build Automation,是否有Microsoft的最佳实践文档或手册概述了管理32位和64位版本C#Windows应用程序的开发、构建和部署的最佳实践 我一直在到处搜索,找到了关于这些方面的零碎信息,但还没有一个完整的指南 我们在这里面临的典型问题是,我们有32位和64位的开发机器,我们在32位机器上构建和测试32位版本的代码,在64位机器上构建和测试64位版本的代码。我们也可以在64位机器中构建32位,但我们一直保持这种方式,因为如果32位的所有工作都在32位上完成,那么测试就变得更容易了,并且我们在发布代码后得到的

是否有Microsoft的最佳实践文档或手册概述了管理32位和64位版本C#Windows应用程序的开发、构建和部署的最佳实践

我一直在到处搜索,找到了关于这些方面的零碎信息,但还没有一个完整的指南

我们在这里面临的典型问题是,我们有32位和64位的开发机器,我们在32位机器上构建和测试32位版本的代码,在64位机器上构建和测试64位版本的代码。我们也可以在64位机器中构建32位,但我们一直保持这种方式,因为如果32位的所有工作都在32位上完成,那么测试就变得更容易了,并且我们在发布代码后得到的问题更少

主要问题是管理64位lib和32位lib,这是一个相当麻烦的问题。开发人员需要删除所有32位lib并添加对64位lib的引用,然后在32位机器上进行构建,反之亦然

我想写一个构建脚本,但它也不能解决手动更改引用lib的问题,它只会在构建时告诉要引用哪些lib

我相信每个开发者都面临着这个问题,一定有比我们现在做的更好的出路


有谁能指出如何更好地管理这一点,并使流程更加自动化和高效

每个平台目标(x86和x64)都应该有一个不同的输出目录,其中特定的库是分开的。如果您的程序不需要调用任何用本机代码编写的DLL(如C/C++),AnyCPU是最佳选择。我使用的是某些库,如sqlite、chilkat等,它们分别需要64位二进制文件和32位二进制文件,因此,AnyCPU不是一个选项。