在Visual Studio 2008中发布后运行安装程序包时遇到问题

时间:2010-03-18 16:00:44

标签: c# visual-studio-2008 deployment

我有一个小的winform应用程序,我写的在IDE中正常运行。它构建时没有错误或警告。它没有使用任何第三方控件。我在Visual Studio 2008中使用C#进行编码。当我构建时 - >发布应用程序,一切似乎都运行正常。但是,当我尝试通过setup.exe文件安装应用程序时,我收到一条错误消息,指出“应用程序无法启动”。错误详情如下:

ERROR DETAILS
Following errors were detected during this operation.
* [3/18/2010 10:50:56 AM] System.Runtime.InteropServices.COMException
    - The referenced assembly is not installed on your system. (Exception from HRESULT: 0x800736B3)
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Internal.Isolation.IStore.GetAssemblyInformation(UInt32 Flags, IDefinitionIdentity DefinitionIdentity, Guid& riid)
        at System.Deployment.Internal.Isolation.Store.GetAssemblyManifest(UInt32 Flags, IDefinitionIdentity DefinitionIdentity)
        at System.Deployment.Application.ComponentStore.GetAssemblyManifest(DefinitionIdentity asmId)
        at System.Deployment.Application.ComponentStore.GetSubscriptionStateInternal(DefinitionIdentity subId)
        at System.Deployment.Application.SubscriptionStore.GetSubscriptionStateInternal(SubscriptionState subState)
        at System.Deployment.Application.ComponentStore.CollectCrossGroupApplications(Uri codebaseUri, DefinitionIdentity deploymentIdentity, Boolean& identityGroupFound, Boolean& locationGroupFound, String& identityGroupProductName)
        at System.Deployment.Application.SubscriptionStore.CommitApplication(SubscriptionState& subState, CommitApplicationParams commitParams)
        at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
        at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
        at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

我不知道还能做什么。我在这个应用程序中使用的唯一有点奇怪的事情是SQL Compact Server。任何帮助将不胜感激。

谢谢,

安德鲁

2 个答案:

答案 0 :(得分:1)

假设您使用Visual Studio安装项目来创建setup.exe,请确保选择了SQL Server Compact 3.5先决条件。

    <击>
  1. 右键单击“安装项目”,然后单击“属性”;
  2. 单击“先决条件”按钮;

  3. 忘掉上面的内容,我误解了这个问题。您正在使用ClickOnce来部署Windows窗体应用程序。要检查您是否具有ClickOnce部署的正确先决条件:

    1. 右键单击“Windows窗体”项目,然后单击“属性”;
    2. 选择发布标签;
    3. 单击“先决条件”按钮并验证是否已选择“SQL Server Compact 3.5”;

答案 1 :(得分:1)

这看起来像是一个非常低级别的Windows错误。运气好的话,Windows事件日志中有一个breadcrumb,它告诉你目标机器上缺少什么DLL。注册表也可能损坏。