2017-02-03 105 views
0

我創建了需要在HKLM中創建註冊表項的安裝項目。 作爲一個條件,我編寫了「NOT(MYCONDITION = 1)」,這樣如果用戶在msi的命令行執行期間定義了MYCONDITION = 1,那麼註冊表項不會被寫入。 msiexec/i mymsi.msi/passive/MYCONDITION = 1註冊表不工作的Visual Studio安裝項目條件

但是,這會被MSI文件忽略並且仍然寫入註冊表項。

我已經在文件系統視圖中的文件上設置了完全相同的條件,並且在此處起作用。因此,如果用戶具有此MyCondition = 1,則該文件不會被複制到安裝文件夾。

你們中的任何人都能想出我爲什麼會遇到這種行爲的原因嗎? 謝謝

+0

您是否還在對話框中有此屬性(例如複選框)安裝項目?如果這是一個x86安裝項目(項目屬性窗口中的TargetPlatform),我還假定您正在查找WoW6432註冊表。 – PhilDW

+0

不,我沒有具有該值的複選框,因爲它只會是命令行選項。我假設,當我在命令行中輸入它時,它被定義並且可以在條件中檢查。而且我不需要在wow6432中進行搜索,因爲我不缺少註冊表項。相反,我有兩個很多條目,這不是預期的行爲。 –

回答

0

我找到了一種讓它工作的方法。不是將條件放在我想要添加的值的父鍵上,而是在每個註冊表值上設置條件,並且工作正常。 請確保在Key上具有「AlwaysCreate」屬性爲false,以便在未創建其子值時不會創建它

相關問題