VS 2008 生成操作中各个选项的差别

时间:2022-03-29 14:20:32
近日,在编译C#项目时经常发现有些时候明明代码没错,但就是编译不过,只有选择重新编译或者清理再编译才会不出错,本着求学的态度,搜罗了下VS2008IDE中生成操作的种类以及差别,整理如下:
内容(Content) - 不编译该文件,但将其包含在“内容”(Content) 输出组中
编译(Compile) - 将该文件编译到生成输出中此设置用于代码文件,说白了就是CS文件,需要编译过程。

嵌入资源(Embedded Resource) - 将该文件作为 DLL 或可执行文件嵌入主项目生成输出中
内容的读写和运行目录下的其他文件没有区分。
编译和嵌入资源读写,需要用到,例如:
GetType().Assembly.GetManifestResourceStream(assembleName + ".AppDesc.xml");

生成操作(BuildAction) 属性:BuildAction 属性指示 Visual Studio .NET 在执行生成时对文件执行的操作BuildAction 可以具有以下几个值之一: 
无(None) - 不在项目输出组中包含该文件,并且在生成进程中不会对其进行编译例如包含文档的文本文件,如自述文件 
编译(Compile) - 将该文件编译到生成输出中。此设置用于代码文件。 
内容(Content) - 不编译该文件,但将其包含在“内容”(Content) 输出组中例如,此设置是 .htm 或其他类型 Web 文件的默认值。 
嵌入资源(Embedded Resource) - 将该文件作为 DLL 或可执行文件嵌入主项目生成输出中此设置通常用于资源文件。
生成操作的默认值取决于添加到解决方案中的文件的扩展名。例如,如果将 Visual C# 项目添加到解决方案资源管理器中,则安装操作的默认值是”编译”,因为扩展名 .CS 指示可编译的代码文件。文件名和扩展名出现在解决方案资源管理器中。