2008-09-28 61 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
相關問題