簡體   English   中英

在OpenFileDialog中與clickonce關聯后,圖標未顯示

[英]Icon not shown after file association with clickonce in OpenFileDialog

我正在嘗試使安裝clickonce的應用程序與具有給定擴展名的文件之間建立文件關聯。 我正在使用項目屬性中的“ 發布選項 - 文件關聯 ”來關聯文件,如下所示:

發布選項

這有效,我可以看到文件在安裝應用程序后已關聯,添加的圖標在具有給定擴展名的文件上可見。

現在,我嘗試使用應用程序中的“打開”選項打開文件,因此我對OpenFileDialog對象上的ShowDialog()方法進行了簡單的調用,如下所示:

OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "test files|*.test1";
openFileDialog1.Title = "Select a test file";

if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{

}

對話框顯示正確,我可以看到文件,但是唯一的問題是文件圖標顯示為空白,因為它們從未關聯。

對話框中顯示的文件

請注意,在上圖中,文件顯示為空白圖標。 如果我使用Windows資源管理器查看該文件,則它具有圖像,因此我真的不知道發生了什么或如何解決。

Windows資源管理器中的文件

注意:我只是意識到,如果使用“畫圖”中的“ 打開”選項查看相同的文件,則文件圖標會正確顯示,但是使用Microsoft Excel進行的打開行為與我的應用程序相同,沒有顯示文件圖標,所以我開始懷疑如果這可能是一個錯誤。 任何建議表示贊賞!

正如Hans Passant指出的那樣,運行OpenFileDialog的進程的位體系結構與進行文件關聯的體系結構之間不匹配。

當應用程序通過clickonce發布時,默認情況下Build屬性下的Prefer 32-bit復選框仍處於選中狀態,因此在x64機器上,clickonce安裝程序正在64位注冊表下建立文件關聯,但該應用程序仍在32位模式下運行。 由於這種不匹配,某些基於32位體系結構構建的應用程序無法在文件對話框中看到文件關聯。

取消選中“ 首選32位”已經為我解決了這個問題,因為clickonce安裝程序和應用程序現在都在同一體系結構上運行。

暫無
暫無

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

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