- 设置Solution中各个Project的configuration和platform
- 分为solution和project的configuration和platform,project的configuration和platform只能从solution的configuration和platform中选,即只能选择project属于哪一组solution configuration+platform,因为编译时从工具栏或编译选项中选的是solution的configuration和platform,就像是一组编译配置。
- Solution下的每个project可以分别配置要使用的configuration和platform
- Configuration
- 翻译成配置,但可以理解成编译模式,一般默认就是Debug和Release,可以理解成一组platform,Debug和Relase都只是这个组的名字,也可以自己命名。
- 选项
- Debug
- Release
- 自定义(可自行添加)
- 可以自己起名字
- 但一般都是从Debug或Release复制配置,因为Debug和Release已经包含一些编译配置(如编译器选项如是否有Debug信息)?
- Platform
- 编译模式,即把project编译成什么平台的机器码?
- 选项
- Mixed Platforms
- Any CPU
- .NET
- x64
- x86
- 自定义(可自行添加)
- 不可以自己起名字,因为一般人不会设置这种底层的编译配置(如怎么编译成机器码)?
- 但一般都是从现有platform复制配置,因为已经包含一些编译配置(如怎么编译成机器码)?
- 可以在哪里配置
- 工具栏上的configuration和platform下拉菜单,只是用于选择solution configuration和solution platform,即按solution来一起切换所有project的编译配置,就像一个分组一样。
- 在Build->Configuration Manger统一配置solution和各个project的configuration和platform
- 可以在solution范围内自定义configuration和platform,并为各个project设置
- 在每个project的properties窗口的Build和Debug中设置使用哪个solution configuration&platform
- 直接修改sln文件
- 前面两处的配置在保存后,最终其实都是体现在sln文件中
- 每一行的key是项目的配置|平台,=后面的value是解决方案的配置|平台,也就是说各个project所使用的configuration和platform都只可以从solution的里面来选。
- 一般每个project都有xxx.ActiveCfg这一行,说明该project配置的configuration和platform,即每个project都要配置。
- 有xxx.Build.0这一行的话,就说明如果选了这一行指明的solution的configuration和platform,就会编译此project。相当于在Configuration Manager中,选了这一行指明的solution的configuration和platform时,该project勾选了Build复选框。
- {1F2020AD-E03D-4341-B66A-F96DF2151719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1F2020AD-E03D-4341-B66A-F96DF2151719}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1F2020AD-E03D-4341-B66A-F96DF2151719}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1F2020AD-E03D-4341-B66A-F96DF2151719}.Release|Any CPU.Build.0 = Release|Any CPU
- 设置项目编译所基于的.NET版本
- 在每个project的properties窗口中选择
- 有些项目有最低的版本要求,比如Unit Test项目要求3.5以上
- 设置项目编译的输出类型
- 在每个project的properties窗口中选择
- 设置项目的引用/依赖
- 不同的项目类型的管理方式有所不同
- 一般的项目类型在References中手动管理或使用Nuget来管理
- website类型的项目要在Property Pages中管理
- .NET Core类型的项目在Dependencies下面管理各种类型的引用/依赖,活用Nuget来管理
- 可以使用object browser来查看引用的每个dll下有哪些命名空间及其包含的文件
- 不同的项目类型的管理方式有所不同