none
發行後執行安裝錯誤 RRS feed

  • 一般討論

  • 使用VS2017版本,OS環境W10。

    發行完成後,要進行安裝就會跳出"無法啟動應用程式,請聯絡應用程式廠商"

    詳細錯誤如下:

    平台版本資訊
    Windows : 10.0.17134.0 (Win32NT)
    Common Language Runtime : 4.0.30319.42000
    System.Deployment.dll : 4.7.3056.0 built by: NET472REL1
    clr.dll : 4.7.3221.0 built by: NET472REL1LAST_C
    dfdll.dll : 4.7.3056.0 built by: NET472REL1
    dfshim.dll : 10.0.17134.1 (WinBuild.160101.0800)

    來源
    部署 URL : file:///C:/Users/PC/Desktop/POS%E7%99%BC%E8%A1%8C%E7%89%88/POS.application

    識別
    部署識別 : POS.application, Version=1.0.0.1, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=x86

    應用程式摘要
    * 可安裝的應用程式。

    錯誤摘要
    下列為錯誤的摘要,這些錯誤的詳細資料稍後會列於記錄檔中。
    * 啟用 C:\Users\PC\Desktop\POS發行版\POS.application 時發生例外狀況。 已偵測到下列失敗訊息:
    + 當所有元素尚未驗證前,無法呼叫 'EndValidation' 方法。與 'ValidateElement' 呼叫相同的 'ValidateEndElement' 呼叫可能會遺失。

    元件存放區異動失敗摘要
    未偵測到異動錯誤。

    警告
    * 此應用程式的資訊清單沒有簽章。將忽略簽章驗證。

    作業進度狀態
    * [2018/11/29 下午 04:27:03] : 已開始啟用 C:\Users\PC\Desktop\POS發行版\POS.application。
    * [2018/11/29 下午 04:27:04] : 已成功完成部署資訊清單的處理。
    * [2018/11/29 下午 04:27:04] : 已開始應用程式的安裝。

    錯誤詳細資料
    執行此作業時,偵測到下列錯誤。
    * [2018/11/29 下午 04:27:04] System.InvalidOperationException
    - 當所有元素尚未驗證前,無法呼叫 'EndValidation' 方法。與 'ValidateElement' 呼叫相同的 'ValidateEndElement' 呼叫可能會遺失。
    - 來源: System.Xml
    - 堆疊追蹤:
    於 System.Xml.Schema.XmlSchemaValidator.EndValidation()
    於 System.Xml.XsdValidatingReader.Read()
    於 System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
    於 System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
    於 System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    於 System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    於 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri)
    於 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    --- 先前擲回例外狀況之位置中的堆疊追蹤結尾 ---
    於 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    於 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    於 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

    元件存放區異動詳細資料
    無可用的異動資訊。


    2018年11月29日 上午 08:45

所有回覆

  • 看看這篇討論有沒有幫助:

    XML Validation .NET 2.0

    2018年11月29日 下午 01:24
  • 這篇討論的答案,提供C#、VB等程式語言的互轉

    看不太出來他怎麼解決的

    有另外再程式中叫用XML的地方,加入schema驗證,結果是成功的

    但將程式發行後,按下setup.exe石仍然會出現上面的錯誤

    • 已編輯 小FF 2018年12月1日 上午 11:09
    2018年11月30日 上午 07:11
  • 毛病應該是出在發行檔上

    檢查一下這個檔案 "POS.exe.manifest"


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2018年12月3日 下午 05:59
    版主
  • 我是用VS2019 發布時也遇到相同的問題,我後來解決方式是

    把 app.manifest的內容,將原本有分版本的改成

    -------------------------BEGIN------------------------------------------------------------------------

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
      <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
          <dpiAware>true/PM</dpiAware>
        </asmv3:windowsSettings>
      </asmv3:application>
      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
          <!-- A list of all Windows versions that this application is designed to work with. 
          Windows will automatically select the most compatible environment.-->
          <!-- Windows 10 -->
           <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
          <!-- Windows 8.1 -->
           <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
          <!-- Windows Vista -->
          <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
          <!-- Windows 7 -->
          <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
          <!-- Windows 8 -->
          <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
        </application>
      </compatibility>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <applicationRequestMinimum>
            <defaultAssemblyRequest permissionSetReference="Custom" />
            <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
          </applicationRequestMinimum>
        </security>
      </trustInfo>
    </asmv1:assembly>

    ---------------------------END---------------------------------------------------------------------------------------------------

    改成以下的語法

    ------------------------BEGIN------------------------------------------------------------------------------------------------------

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <!-- UAC 資訊清單選項
                 如果您要變更 Windows 使用者帳戶控制層級,請將 
                requestedExecutionLevel 節點取代為下列其中一項。

            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

                如果您要針對回溯相容性使用檔案及登錄虛擬化,
                請刪除 requestedExecutionLevel 節點。
            -->
            <requestedExecutionLevel level="asInvoker" uiAccess="false" />
          </requestedPrivileges>
          <applicationRequestMinimum>
            <defaultAssemblyRequest permissionSetReference="Custom" />
            <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
          </applicationRequestMinimum>
        </security>
      </trustInfo>
    </asmv1:assembly>

    ----------------------------END--------------------------------------------------------------------

    就可以正常了。


    • 已編輯 Iron Hung 2020年3月13日 上午 06:57 增加內容
    2020年3月13日 上午 06:56