2011-11-01 119 views
1

我有一個安裝項目,它至少工作了幾年。我最近在這個組合中增加了一個新項目,一個winform。我帶我進行了大量的谷歌搜索和研究,以使其發揮作用 - 許多感謝我在「冒險」期間發現的大量文章。安裝項目創建額外的鍵

這個新項目使我可以右鍵單擊資源管理器中的文件並將其添加到我的系統中。我可以安裝項目很好,文件被添加/複製到他們的右邊的地方。代碼很好,正是我所說的。

由於某些原因,註冊表編輯器和Windows註冊數據庫不同意密鑰。

註冊表編輯器狀態,我應該有HKCR\*\shell\Add to system\command和字符串鍵說
Name: (Default)
Value: "[TARGETDIR]mySystemAddFileForm "%1"

SOFAR這麼好,是Windows REG分貝也認爲道路是正確的。是的,有一個「但」。 出於某種原因的Windows REG分貝認爲應該有第二個字符串鍵說
Name: (Default)
Value: null

在Windows優先,打亂了我的邏輯(設計,代碼,想法)。

如果我手動清理它,我可以右鍵單擊這些文件,並將它們添加到系統中。只是要清楚。是的,資源管理器有一個右鍵點擊選項,說「添加到系統」,是的我手動編輯註冊表後,它點擊它時,它會工作。

在將其更改爲註冊表編輯器之前,我在CustomSetupActions中生成了密鑰,但如果用戶決定編輯安裝文件夾,則無法創建該句柄。從默認[程序文件](c:\ Program Files \ ..)到用戶在安裝點決定的任何內容。

通過註冊表編輯器我的意思是在安裝項目,查看/註冊表中的一個。

如何告訴Windows保留我精細調整後的代碼的f *,並讓我決定在何時何地創建哪些reg鍵。

編輯:(標準)至(默認)。 Windows可能會將(默認)轉換爲本地語言。將其保留爲默認值。

+0

「(標準)」是否指(默認)註冊表項?此外,您的註冊表值在文件路徑後缺少一個報價。 –

+0

是標準==默認。這裏有一個額外的「 – DoStuffZ

回答

2

Windows安裝程序可以安裝默認值,並且通常它們不會被Windows自動覆蓋。

要使用Visual Studio安裝項目安裝默認值時,請確保名稱字段爲空:http://msdn.microsoft.com/en-us/library/windows/desktop/aa371168(v=vs.85).aspx

這通常是不夠的。如果安裝後該值不符合預期,請嘗試創建verbose installation log以查看安裝過程中發生的情況。註冊表項很可能被跳過或寫入其他地方。

+0

啊,是的,你說的是什麼,我已經寫了」標準「這個詞,當我刪除它恢復爲」默認「時,Windows可能會錯過一個」默認「,所以它創建並翻譯它是「標準的」,讓我建立和測試,否則看起來像得分這個。乾杯隊友。 – DoStuffZ