2008-09-28 64 views

回答

100

从文档:

的BuildAction的属性指示 执行构建时与文件 做什么的Visual Studio。 BuildAction的 可以有几个值之一:

无 - 不包括 项目输出组中的文件,而不是 在构建过程编译。 示例是一个包含 文档(如自述文件)的文本文件。

编译 - 该文件编译为 构建输出。代码文件使用此设置 。

内容 - 文件未编译, 但包含在内容输出 组中。例如,此设置为 .htm或其他 种Web文件的默认值。

嵌入式资源 - 此文件为 嵌入在主项目编译 输出为DLL或可执行文件。通常用于资源文件的是 。

+10

WPF有一堆新的枚举值的属性.... – Gishu 2008-09-28 12:34:42

+1

有趣!我安装了VS2008,我想知道他们为什么没有出现在我的文档中? – 2008-10-03 22:01:00

+0

PRI资源呢? – Yawar 2015-05-22 20:48:36

824
  • :该文件不包含项目输出组,并在构建过程中未编译。一个示例是包含文档的文本文件,如自述文件。

  • 编译:该文件被编译到编译输出中。此设置用于代码文件。

  • 内容:允许您通过Application.GetContentStream(URI)作为流检索文件(与程序集在同一目录中)。对于这种方法的工作,它需要一个AssemblyAssociatedContentFile自定义属性,当你文件标记为“内容”

  • 嵌入式资源它的Visual Studio慷慨地补充道:嵌入的独家装配清单资源的文件。

  • 资源(WPF只):嵌入(与类似的设置大会通过的所有文件)在共享文件组合清单资源命名AppName.g.resources。

  • (仅限WPF):用于编译xaml文件到baml。然后用与Resource相同的技术嵌入baml(即,可作为'AppName.g。资源)

  • ApplicationDefinition(WPF只):马克的XAML /类文件定义应用程序。指定的代码隐藏与x:类=“Namespace.ClassName”并用的StartupUri =“Window1.xaml”

  • 闪屏(WPF只)设置启动形式/页:一种图像即被标记为SplashScreenis shown automatically when an WPF application loads, and then fades

  • DesignData:编译XAML的ViewModels使得用户控件可以在Visual Studio中的样本数据进行预览(使用模拟的类型)

  • DesignDataWithDesignTimeCreatableTypes:编译XAML的ViewModels使得用户控件可以与样本数据在Visual Studio (uses actual types)

  • EntityDeploy预览:(实体框架)used to deploy the Entity Framework artifacts

  • CodeAnalysisDictionary:含有A的XML文件custom word dictionary for spelling rules

33

Page - 获取指定的XAML文件并编译为BAML,并将该输出嵌入到程序集的托管资源流中(特别是AssemblyName.g.resources),此外,如果您在根XAML元素上具有适当的属性在该文件中,它将创建一个blah.g.cs文件,该文件将包含该页面的“代码隐藏”的部分类;这基本上涉及调用BAML goop来重新提供文件到内存中,并将你的类的任何成员变量设置为现在创建的项目(例如,如果将x:Name =“foo”放在一个项目上,你将能够做到this.foo.Background = Purple;或类似的

ApplicationDefinition - 与Page类似,除了它去onestep furthur,并定义你的应用程序的入口点,将实例化你的应用程序对象,然后调用它,然后实例化StartupUri属性设置的类型,并且会给你的主窗口。

另外,要明确,这个问题总的来说是无限的,任何人都可以定义额外的BuildActions通过构建一个MSBuild任务。如果你查看%systemroot%\ Microsoft.net \ framework \ v {ver sion} \目录下,然后查看Microsoft.Common.targets文件,您应该可以解密更多(例如,使用VS Pro和以上版本,有一个“Shadow”操作,允许您生成私有访问器以帮助单元测试私人课程。

5

在VS2008中,这似乎是最有用的文档条目是:

的Windows Presentation Foundation生成WPF应用程序(WPF)

MS-帮助://MS.VSCC.v90/MS.MSDNQTR .v90.en/wpf_conceptual/HTML/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

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

页面 标识将其内容转换为二进制格式并编译为程序集的XAML标记文件。页面项目通常与代码隐藏类一起实现。

最常见的页面项目是XAML文件,其顶层元素是下列之一:

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). 

资源 标识被编译到应用程序组件的资源文件。如前所述,UICulture处理资源项目。

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

23

VS2010有一个'Build Action'的属性,还有'Copy to Output Directory'。因此,如果复制属性设置为“如果较新则复制”或“始终复制”,则“无”行为仍会复制到构建目录。

所以,“内容”的生成操作应保留,表示你的内容将通过“Application.GetContentStream”访问

我用“生成操作”“无”和“复制到输出Direcotry的设置'对于某些外部链接的.config包括'复制如果更新'。

G.

4

如何从微软连接约this page(解释DesignData和DesignDataWithDesignTimeCreatableTypes)类型。引用:

以下描述了示例数据文件的两个构建操作。

样本数据的.xaml文件必须被赋予下面生成操作之一:

DesignData的样本数据类型会失礼类型创建。如果示例数据类型不可创建,或者只有您想要为其定义示例数据值的只读属性,请使用此生成操作。

DesignDataWithDesignTimeCreatableTypes样本数据类型将使用在采样数据文件中定义的类型来创建。使用默认的空构造函数创建示例数据类型时,使用此构建操作。

不是所以难以置信的详尽,但它至少给了一个提示。 This MSDN walkthrough也给出了一些想法。我不知道这些构建操作是否也适用于非Silverlight项目。

3
  • Fakes: Microsoft Fakes(单元测试隔离)框架的一部分。不适用于所有Visual Studio版本。假货用于支持项目中的单元测试,通过用存根或垫片替换应用程序的其他部分来帮助您隔离正在测试的代码。更多这里:https://msdn.microsoft.com/en-us/library/hh549175.aspx
相关问题