我在VS2015中使用NetOffice製作了一個Outlook加載項,並針對.NET 2.0,現在我需要將其打包以供非管理員用戶進行安裝(它不需要管理員權限)。我通常使用ClickOnce但缺少它(假設因爲我沒有使用VSTO?),所以我下載並安裝了Visual Studio 2015 Installer Project(似乎易於使用)。針對非管理員用戶的MSI
This SO question/answer似乎是我正在尋找的解決方案,但是當我運行MSI文件時,它仍然需要管理員密碼。輸入管理員密碼後,所有文件都將添加到用戶的AppData文件夾中。那麼爲什麼仍然需要管理員密碼?我在這裏錯過了什麼?在SO問題概述
9個步驟:
- 使用類型51自定義操作中InstallUISequence總是取消設置ALLUSERS(每用戶選項)
- 文件必須寫入只標準用戶有權訪問的文件夾。假設ALLUSERS始終設置爲每個用戶的設置,則可以使用可重定向的文件夾屬性,但不能使用ProgramFilesFolder,因爲它不會針對每個用戶重定向。
- 將應用程序安裝到LocalAppDataFolder下的某個位置。
- 所有註冊表設置都應該寫入註冊表表格根目錄列中的HKCU中。
- 翻轉匯總信息流中字數屬性的第3位,表示不需要憑證提示。
- 如果您有引導程序(通常名爲setup.exe),請顯示requestedExecutionLevel以運行asInvoker。
- 通過ICE驗證,因爲ICE檢查每個用戶和每個機器狀態的混合不正確。
- 從標準用戶帳戶和提升的命令提示符處測試以確認行爲。
- 提供用戶關於軟件包用戶特定性質的文檔,因爲這在今天的應用程序安裝中是非典型的。
這裏是我做了什麼:
第1步:安裝項目 - >查看 - >用戶界面 - >設置 「InstallAllUsersVisible」 爲False(每SO接聽)
第2步:在設置文件系統中,我添加了「用戶的應用程序數據文件夾」,然後添加了「本地」,然後添加了「項目名稱」,然後添加了「項目輸出」 - >「主輸出」。我試圖刪除「應用程序文件夾」,但它表示它是必需的,不會被刪除。
第3步:我相信這是我做過什麼上面...
第4步:我還沒有添加任何註冊表項。這是必需的嗎?
步驟5:根據SO回答,我下載了Orca並打開了MSI文件。然而,當我去查看 - >摘要信息,並尋找字數屬性它不在那裏。我瀏覽過所有表格,無法在任何地方找到它。
步驟6:在安裝程序文件屬性中取消選中「創建安裝程序以安裝必備組件」後,我不再有setup.exe文件。
第7步:我讀了一些關於ICE驗證的圖片,但並不確定我需要在這裏做什麼。
現在跳過步驟8和9。
其他:在Orca環顧四周時,我注意到CustomAction表中的DIRCA_TARGETDIR仍然設置爲程序文件夾,所以我將其更改爲[AppDataFolder] [Manufacturer] [ProductName]。
多年來,我撰寫了許多office插件安裝程序/博客文章。海事組織使用微星的全部重點是,你可以有一個引導程序來安裝所有的前置程序並安裝你的MSI每臺機器。如果您的要求是每個用戶/從不要求提升權限,爲什麼不使用ClickOnce?我可能不會在意它,但這是它的設計目的。 –
我一直使用ClickOnce,但對於此插件,我無法使用VSTO(未安裝在用戶機器上)。所以我使用NetOffice並使用他們的「開發工具箱」創建了我的項目。當我在VS2015中打開它並轉到項目屬性時,「簽名」選項卡下的「發佈」選項卡丟失並且ClickOnce灰顯。如果我能弄清楚如何使用ClickOnce,我會立即。 – pheeper
嗯..我從來沒有使用過SDK。也許有一個導入目標可以添加到他們生成的MSBuild項目文件中,以啓用該目標。另一種選擇是查看https://github.com/Squirrel/Squirrel.Windows ..不要誤會我的意思,我喜歡MSI,我喜歡每臺機器安裝,但如果您的故事確實是每個用戶,我認爲還有其他的選擇可能會更好。 –