簡體   English   中英

圖像構建操作:無和嵌入式資源之間的區別?

[英]Image Build Action: Difference between None and Embedded Resource?

我在我的一些按鈕上使用圖片,我不希望這些圖像包含在輸出中。

這些圖像是通過按鈕屬性設置的,因此它們在Resource.resx文件中定義。

我被告知要將Build Action設置為Embedded Resource,但我很好奇為什么這會產生影響。 我現在將構建操作設置為“無”,並且沒有任何文件設置為復制。 我可以將構建的應用程序移動到任何地方並啟動它,所有圖像都顯示得很好。 (只是為了澄清一下,這些圖像在啟動時肯定不在程序目錄中,它們看起來還不錯)。

我在MSDN上查了一下並得到了這個:

無 - 文件未包含在項目輸出組中,並且未在構建過程中編譯。 一個示例是包含文檔的文本文件,例如自述文件。

嵌入式資源 - 此文件作為DLL或可執行文件嵌入在主項目構建輸出中。 它通常用於資源文件。

但是從這聽起來好像將它們全部設置為無甚至不應該工作(但確實如此)。

所以我很好奇它將嵌入式資源設置給它帶來了什么好處。 我測試了它,沒有區別。 希望有人能解釋發生了什么。

我唯一的假設是,當通過按鈕設置圖像屬性並且條目被添加到資源文件時,它不會連接到添加到項目中的文件(即使它們是相同的)。 因此,如果您以這種方式設置圖像屬性,那么圖像甚至不需要包含在項目中(即在解決方案資源管理器中)。

謝謝!

你似乎偶然發現了兩種不同的顯示圖像的方式。

  1. 如果使用資源文件,則資源文件本身將包含圖像,該文件將被復制到輸出目錄中。 然后,您將從該資源文件中引用該圖像,一切都會很好。 none / embedded / content的實際圖像設置無關緊要。 這允許您為各種語言和位置創建資源文件,並根據應用程序文化更改使用的圖像。

  2. 引用圖像的另一種方法是嵌入圖像或將其設置為項目中的內容。 如果將其設置為內容,它將復制到輸出目錄,並可以根據位置進行物理引用,或者如果嵌入它,文件將位於創建的dll內,您可以使用該文件在其中提取資源流內置功能。

您正在使用方法#1,所以一旦將它放在資源文件中,您就不必在項目中擁有它,因為資源文件已經在項目中,而且文件將來自該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM