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項目。

...