[英]Problem in creating installer for 64 bit system
我正在研究ac#+ vsto項目。我們使用vsto創建和驗證excel模板。 我最近發現了一件有趣的事情。
在32位系統上,安裝了軟件
C:\\ Program Files
但在64位系統上,它安裝在
C:\\ Program Files(x86)
當我嘗試
案例I:在64位系統上打開excel文件(在32位系統上創建)。
案例二:在32位系統上打開excel文件(在64位系統上創建)
我在系統上遇到異常。
這是因為各個DLL存儲在不同的位置。
因為32位指的是
C:\\ Program Files
和64位指的是
C:\\ Program Files(x86)
有什么辦法可以強制安裝程序在64位系統的C:\\ Program Files中安裝軟件,而不是在C:\\ Program Files(x86)中安裝它
有幫助嗎?
問候。
慣例是在64位系統上將32位軟件安裝到Program Files (x86)
。 我不認為你想要將32位軟件安裝到Program Files
- 這將違背細節。
至於修復是什么,我想知道為什么Excel認為你的DLL安裝在Program Files
。 您是否有可能在某處使用硬編碼路徑?
從您的評論到這個答案,確實看起來您正在對安裝路徑進行硬編碼。 這聽起來好像在很多方面都是個問題。 您已經發現了64位操作系統問題,但是如果您的用戶的系統驅動器是D怎么辦? 如果他們有Windows的本地化版本怎么辦? 例如,在德國,程序文件文件夾通常是C:\\Programme
。
從我可以收集的關於如何部署VSTO加載項的內容中,您只需編寫一堆注冊表項,其中包含DLL所在位置的詳細信息。 我的猜測是,您目前將此位置硬編碼,您需要更改安裝程序,以根據用戶在安裝VSTO時選擇的位置來編寫位置。
我不確定我是否完全理解了這個問題,但是你不能只使用System.Environment.Is64BitOperatingSystem來查看這是否是64位操作系統?
從這個評論....
當我在32位系統上安裝我的應用程序並生成模板時,它會在模板中存儲DLL的路徑,但是當我嘗試在64位系統上打開該excel模板時,它會搜索程序文件中存在的DLL引用,但DLL存在在Program Files(x86)文件夾中,我得到一個例外,我希望它現在清楚。
聽起來好像你可能沒有正確使用VSTO,盡管可能有一些我不知道的用法。
對於典型的VSTO插件,插件在EXCEL“Addins”鍵下注冊。 無論是64位還是32位都沒關系,您仍然只能注冊一個(這是適用的)。
加載Excel時將加載插件,而不是在加載特定模板時加載。
加載模板時,插件通常會監視doc加載,然后根據需要做出反應。
我相信你可以使用VSTO構建一個“每個文檔”類型的插件,但是如果你這樣做,那么Excel根本不會在不同的安裝類型的Excel中加載文檔也不會讓我感到驚訝,因為它們不是自動兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.