visual-studio - Visual Studio项目属性各种" 生成" 操作设置是什么?

  显示原文与译文双语对照的内容

在大多数情况下,你只需将 Visual Studio 设置为默认值。 我引用了在解决方案资源管理器中选择的每个文件的BuildAction 属性。 有很多选项,很难知道每个选项会做什么。

时间:

  • : 不包括该文件涉及的项目输出组中,不编译生成过程中。 例如包含文档的文本文件,如自述文件。

  • 编译: 将该文件编译到生成输出中。 这里设置用于代码文件。

  • :使你可以检索一个文件通过 Application.GetContentStream( uri ) ( 与程序集相同的目录) 作为一个流内容。 为使这里方法正常工作,它需要一个自定义属性,该属性 AssemblyAssociatedContentFile vs graciously当你将文件标记为"添加内容"

  • 在一个独家集清单 resource, 嵌入资源: 嵌入了 file.

  • 资源 ( 仅 wpf ): 嵌入了文件共享( 具有相似设置的程序集中的所有文件) 程序集清单中的资源命名 AppName.g. 资源。

  • ( 仅 wpf ): 用于将 xaml 文件编译为 baml 。 然后,baml 被嵌入到与 Resource 相同的技术中( 例如 。 可以作为 `appname 。g 。资源使用

  • ApplicationDefinition ( 仅 wpf ): 标记定义你的应用程序的xaml/类文件。 你指定将code-behind与x,class="命名空间。命名空间"并设置启动窗体/页面,其中包含 startupuri="window1.多行代码"

  • SplashScreen ( 仅 wpf ): 当WPF应用程序加载时,会自动显示标记为 SplashScreen的图像,然后将它的淡入

  • 在 Visual Studio ( 使用模拟类型 ), DesignData: 将多行代码viewmodels编译,因此的用户控件usercontrol可以预览我们的示例数据

  • DesignDataWithDesignTimeCreatableTypes: 编译 xaml viewmodels,以便使用 Visual Studio ( 使用实际类型) 中的样例数据来预览 usercontrol

  • EntityDeploy: ( Entity Framework ): 用于部署 Entity Framework 工件

  • 拼写规则相关, CodeAnalysisDictionary: 一个xml文件,该文件包含 自订字词典

从文档:

BuildAction属性表示在执行生成时 Visual Studio 对文件执行的操作。 BuildAction可以有以下几个值之一:

无- 文件不包含在项目输出组中,并且不在生成过程中编译。 例如包含文档的文本文件,如自述文件。

编译- 文件编译到生成输出中。 这里设置用于代码文件。

内容- 文件未编译,但包含在内容输出组中。 例如这里设置是. htm 或者其他类型的站点文件的默认值。

EmbeddedResource-将该文件作为DLL或可执行文件嵌入主项目生成输出中。 它通常用于资源文件。

页面--接受指定的多行代码文件并编译为baml为你的程序集型式,并将该输出到了托管资源流有相应的属性在根文件中的多行代码元素它将创建一个 blah.g.cs 文件它将包含一个分部类的什么页面"代码编码代码";这基本上就是一个对BAML黏糊糊的调用来把re-hydrate该文件到内存中和要设置的任何成员变量在now-created你的类型的项( 例如 如果你在一个项目上放置了 name=:"foo",你可以做 this.foo.Background = 紫色;或者类似的。

ApplicationDefinition --类似于页面,除了 onestep furthur,并定义应用程序的入口点,它为应用程序实例定义实例,调用运行StartupUri属性,然后将它赋予你的应用程序。

另外,要清楚地说,这个问题是infinate的结果集;任何人都可以通过构建一个MSBuild任务来定义额外的BuildActions 。 如果你查看 %systemroot%Microsoft.netframeworkv{version} 目录,并查看 Microsoft.Common.targets 文件,你应该能够解密更多的( 例如在 vs Pro和上版本中,有一个"阴影"操作,它允许你生成私有访问器来帮助单元测试私有类。

VS2010有'生成操作'的属性,也有'复制到输出目录'的属性。 所以,通过对生成目录如果该副本'无'仍将复制的一个动作属性设置为'如果更新则复制'或者'总是复制'。

因此,应该保留'内容'的构建操作,以指示你通过'应用程序。访问的内容。'

于一些外部链接。config相关 includes,'复制到输出 Direcotry''无'和我用的'生成操作'设置中的设置。

g.

我最喜欢的新构建操作是飞溅的 ! 阅读更多关于它这里

在VS2008中,看起来最有用的文档条目是:

Windows 演示基础构建WPF应用程序( WPF )

ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

ApplicationDefinition标识包含应用程序定义( 一个它的根元素为应用程序的XAML标记文件)的XAML标记文件。 当安装为真并且OutputType为winexe时,ApplicationDefinition是必需的。 一个WPF应用程序,因此,一个MSBuild项目只能有一个 ApplicationDefinition 。

页面标识了一个XAML标记文件,该文件的内容被转换为二进制格式并编译到程序集中。 页面项通常与code-behind类一起实现。

最常见的页面项是XAML文件,它的top-level元素为以下之一:


Window (System.Windows..::.Window).

Page (System.Windows.Controls..::.Page).

PageFunction (System.Windows.Navigation..::.PageFunction<(Of <(T>)>)).

ResourceDictionary (System.Windows..::.ResourceDictionary).

FlowDocument (System.Windows.Documents..::.FlowDocument).

UserControl (System.Windows.Controls..::.UserControl).

资源标识编译到应用程序程序集中的资源文件。 就像前面提到的,处理资源项。

内容标识与应用程序一起分发的内容文件。 描述内容文件的元数据被编译到应用程序( 使用 AssemblyAssociatedContentFileAttribute ) 中。

在 Microsoft Connect ( 解释DesignData和 DesignDataWithDesignTimeCreatableTypes ) types,不如此页. 引用:

下面介绍了示例数据文件的两个生成操作。

示例数据. xaml 文件必须指定以下生成操作之一:

DesignData: 示例数据类型将作为伪类型创建。 当示例数据类型不可创建或者具有要定义示例数据值的read-only属性时使用这里生成操作。

DesignDataWithDesignTimeCreatableTypes: 示例数据类型将使用示例数据文件中定义的类型创建。 当示例数据类型可以使用它的默认的空构造函数创建时使用这里生成操作。

虽然 如此 exhaustive,但至少给出了一个暗示。 这里MSDN演练编辑器还提供了一些建议。 我不知道这些生成操作是否适用于non-Silverlight项目。

...