NET工程平台和目标平台区别
本文来自网络:
“活动”的意思是,指的是整个的solution的一个配置。包括VS工具栏中的那个配置管理器中现在活动的,这两个地方是一致的。
这时如果单个去编译一个项目,跟整个的solution的配置没有关系。如果项目目标平台设置的是64位,编译出来的就是64位。
那么为什么会让一个solution有一个整体的配置呢?这个就涉及到了项目间引用的问题。假设这样,你有个web site,叫做C,C参照了上一个类库项目B,那么你发布这个网站的时候,是会让你选一个配置的,你这时候选的是整个solution的配置,VS会根据你当时选的这个配置,比如说Release, 去查看在这个配置下的各个项目的编译模式,然后编译。而不会在乎你B类库项目现在的Project Property中的目标平台的设置。
总结来说,就是你在本地Rebuild所有project的时候,是按照你当前的目标平台进行编译,编译到你本地的bin目录。(其实可以认为,本地的Debug或者Release运行,跟solution的配置都没有关系。)
当你发布整个solution的时候,会根据你选择的配置,去编译整个solution中的各个project,然后发布。
虽说Any CPU编译出来的程序取决于操作系统,但是由Any CPU编译出来dll则取决于调用它的主程序,即若主程序是32位的,那么dll也是32位的,若主程序是64位的,那么dll就是64位的。所以dll一般采用Any CPU平台编译,而主程序一般采用x86平台编译。
了解了它们的区别之后,我们打包程序的时候就知道如何取舍了。一般来说,在不清楚客户的电脑是什么类型的操作系统的情况下,或者两者都有的时候
主程序采用x86平台编译,dll采用Any CPU平台编译。