2008-12-19 57 views
6

我有一個非常簡單的安裝項目,可以將三個dll複製到GAC中。這就是所要做的。它在XP中運行正常,但在Vista機器上,它錯誤地指出它無法寫入文件並檢查權限。我敢肯定這與Vista中的一些假冒廢話有關,但我不知道如何解決它。爲Vista創建MSI安裝程序時需要執行哪些額外步驟?

有沒有其他人遇到過這個問題,如果是這樣,你是如何克服的?

回答

1

如果您使用Windows Installer,是否將您的程序集放入特殊的全局程序集緩存文件夾中?這對我在Vista和Windows 7上一直很有用。不需要使用GACUtil或其他任何東西,只需將程序集放在安裝程序項目的正確文件夾中即可。

1

您使用gacutil.exe來安裝dll?或者你只是複製文件?

無論如何,GAC應該避免使用自定義dll,除非它們被許多應用程序使用。使應用程序關閉/本地磁盤:它只會花費你一些磁盤空間,並且它使您能夠使用簡單的Xcopy部署。

+0

感謝您的回覆,但您可以免除使用GAC的講座。我知道何時何時不使用它。在這種情況下,我需要利用GAC。這就是爲什麼我問這個問題並創建了一個安裝程序來自動執行這個過程。 – Kilhoffer 2008-12-20 15:01:07

0

我已經有一些(第三方)MSI的,它將不會正確安裝,除非我強制升級模式從一開始,即使他們稍後在過程中顯示UAC提示。

疑難解答......我假設您是從管理員帳戶安裝的。但是,是否啓用了UAC?如果是,您是否獲得了UAC提升提示?嘗試在提升模式下運行MSI軟件包以查看它是否有效。從提升的命令提示符:

msiexec /i setup.msi 
0

您使用什麼編譯器來製作MSI?在上個週末的樂趣之後,我可能是MSI和Vista問題的專家:)

如果使用VC2003或VC2005,根據編譯器版本的不同,會有不同的問題。

如果是2005,請務必安裝Service Pack和Vista Service Pack。這可能會解決你的問題。

如果失敗,可以通過自定義操作將它們放入GAC中,但請注意,2005年有一個錯誤,其中no_impersonate位設置不正確。您必須使用腳本或orca.exe自行設置此位。

相關問題