c# - 桌面應用程序在客戶端系統中安裝後無法打開




windows-installer (4)

我目前正在使用帶有4.6.1 .net框架的visual studio 2017。 我為我的桌面應用程序創建了安裝文件,安裝程序安裝並在我的系統中完美運行。 問題是安裝程序在其他計算機上成功安裝但應用程序未打開。

編輯

在客戶端系統中下載了.net框架但仍然出現同樣的問題。

編輯2

我使用Dependency walker運行了依賴項掃描。 它說有一堆系統無法找到的文件 - 錯誤打開文件。 系統找不到指定的文件。

  API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
  API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
  API-MS-WIN-CORE-WINRT-L1-1-0.DLL
  API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
  API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
  API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
  DCOMP.DLL
  IESHIMS.DLL

此外,發現x86類型的模塊出現錯誤 - 包括setup.exe - 但我不知道這是怎麼發生的。 無論我在哪裡看到列出的選項,我都選擇了64。 請找 screenshot 。 如果這確實是問題,我該如何解決?


應用程序啟動問題 :這是一個簡短版本: WPF應用程序在啟動時崩潰

日誌 :始終檢查所有 事件日誌 應用程序日誌 MSI日誌 (如果可用)。 只是提一下。 也許嘗試附加調試器進行測試,如此處所述 - 只要應用程序完全開始。 然後單步執行代碼。

常見的罪魁禍首 :你可能只是 lack a runtime ,有一個比特 bitness problem (32/64位)或 insufficient permissions / privileges ,或 configuration errors inixmlregistry etc... )。

總結一下 - 魚雷,在下面全面傳播 - 沒有什麼太愚蠢,更不用說了:-):

缺少運行時 :首先,始終檢查是否缺少運行時。 例如: .Net .Net Core Java Silverlight Direct X (現在甚至用於應用程序), VC++ Runtime MS-XML (遺留) etc... 。 請記住,它們有不同的版本,有些不能在盒子上共存,而其他版本可以並排運行。

錯誤代碼 :查找錯誤代碼和異常消息。

調試工具 有關調試工具的一些信息

ProcMon.exe :交易工具。 一刀切的工具。 蜜蜂的膝蓋,最頂級的,巨大的飛躍,貓的睡衣。 有效地使用它可能是一個挑戰,但它是免費的最佳通用調試工具。

其他想法

  1. 配置設置
    • 開發箱罪 :硬編碼參考? 測試服務器/ UAT鏈接?
    • 清單 INI文件 XML 文件
    • 註冊表設置 ? HKLM / HKCU
    • 連接字符串 。 請參閱下面的“身份驗證和授權”部分。
  2. 平台和 比特 ? (ARM,Intel 32/64等......)。
    • 從錯誤的註冊表配置單元(經典時間浪費)中讀取非常常見:
      • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\MyApp\MySettings (32位)
      • HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\MySettings (64位)
  3. 先決條件和 Dependencies
  4. 丟失/損壞註冊 (間接依賴)
    • 缺少COM,COM Interop(regasm.exe),無註冊COM(基於清單)
    • 破碎的並排Win32組件清單(模糊,可能是由於草率的企業應用程序重新打包,可能會打擊看似隨機的PC)
    • GAC安裝?
      • 存在兩個GAC
      • GAC / WinSxS提交問題 :在StartServices之後的提交階段之前,GAC / WinSXS文件不會安裝到GAC中。
  5. 權限和權限 ? - 本地 - ACL權限 NT權限
  6. 身份驗證/授權 - 與網絡相關
    • 本地用戶,域用戶,Active Directory:組成員身份,組策略等...
    • 啟動用戶:用戶個人資料問題? 也許嘗試登錄失敗的其他用戶?
    • 驗證模式 :Windows身份驗證。 SQL Server身份驗證等...
  7. 一般網絡和代理問題 ? (代理,WINS,DNS和網絡中涉及的所有復雜性.UNC路徑可達?)
  8. 許可 ? (可以想像與硬件加密狗和驅動程序有關)
  9. 安全軟件干擾 ? (軟件/硬件防火牆,防病毒,加密工具和套件等......)
  10. 操作系統版本或版本? ( Windows 7問題
  11. 本土化? 非英語系統?
  12. 驅動程序?
  13. 硬件?
  14. 編碼?
  15. 系統腐敗? (錯誤的時間,磁盤錯誤,文件和路徑名太長,磁盤已滿,“錯誤的東西”)
  16. 目標機器性質? 虛函數? 國有企業? 目標機器是真機嗎? 試機?
  17. 鎖定/阻止/使用中的文件和註冊表項?
  18. 惡意軟件? 在問題方面幾乎可以引起任何問題。

鏈接


可能的根本原因:

  1. 系統先決條件不符合,您應該檢查目標客戶端系統上的所有依賴項是否已就緒,或者將先決條件添加到安裝指南中
  2. 特權問題,您可以使用管理員權限在本地複製文件或更改註冊表,但客戶端不是。 如果是這樣,您需要將文件更改為“C:\ Users {username} \ AppData \ Roaming”,或者在客戶端系統上使用管理員權限進行安裝。

在這種情況下,應用程序可能在客戶端系統中崩潰:

  1. 檢查應用程序日誌是否有任何錯誤
  2. 檢查窗口記錄是否有任何錯誤
  3. 使用WinDbg.exe轉儲系統信息並進行調試

確保客戶端系統上安裝了4.6.1 .net框架。因為應用程序需要在計算機上安裝.net框架工作


要成功部署應用程序,還必須部署應用程序引用的所有組件。 查看部署過程

用戶可能需要計算機上的管理權限或類似的用戶權限才能安裝引導的組件。 對於ClickOnce應用程序,這意味著用戶可能需要管理權限才能安裝應用程序,而不管應用程序指定的安全級別如何。 安裝應用程序後,用戶可以在沒有管理權限的情況下運行應用程序。

我假設您和您的客戶端正在運行安裝和應用程序作為管理員運行。





windows-installer