簡體   English   中英

為64位系統創建安裝程序時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM