应用程序无法在 windows xp 上运行

Posted

技术标签:

【中文标题】应用程序无法在 windows xp 上运行【英文标题】:Application will not run on windows xp 【发布时间】:2014-10-08 04:26:29 【问题描述】:

我使用 Visual Studio 2013 创建了一个 vb.net 应用程序,我已将其发布并安装在我的工作电脑(Windows 7)和我的笔记本电脑(也是 Windows 7)上,它们都可以正常工作。我尝试将它安装在要运行此应用程序的电脑上,即 windows xp,我收到以下详细信息的错误:

PLATFORM VERSION INFO
Windows             : 5.1.2600.196608 (Win32NT)
Common Language Runtime     : 4.0.30319.1022
System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll             : 4.0.30319.1022 (RTMGDR.030319-1000)
dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
Deployment url          : file:///D:/Visitors.application

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of D:\Visitors.application resulted in exception. Following failure messages were detected:
    + Exception reading manifest from file:///D:/Visitors.application: the manifest may not be valid or the file could not be opened.
    + Manifest XML signature is not valid.
    + SignatureDescription could not be created for the signature algorithm supplied.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [14/08/2014 13:43:54] : Activation of D:\Visitors.application has started.

ERROR DETAILS
Following errors were detected during this operation.
* [14/08/2014 13:44:00] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
    - Exception reading manifest from file:///D:/Visitors.application: the manifest may not be valid or the file could not be opened.
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
        at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
        at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
        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)
    --- Inner Exception ---
    System.Deployment.Application.InvalidDeploymentException (SignatureValidation)
    - Manifest XML signature is not valid.
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)
        at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
    --- Inner Exception ---
    System.Security.Cryptography.CryptographicException
    - SignatureDescription could not be created for the signature algorithm supplied.
    - Source: System.Security
    - Stack trace:
        at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key)
        at System.Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm key)
        at System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(AsymmetricAlgorithm& signingKey)
        at System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags verifyFlags)
        at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

这是我第一次发布应用程序所以我不知道为什么会发生这种情况,我只能假设它与windows xp有关。对于这个问题,我将不胜感激。

更新:

.NET 框架的目标是 4.0,目标 cpu 是“Any CPU”,我将其更改为 x86。有问题的 xp pc 具有 .NET4.0、XP SP3 并且是 32 位的,但这仍然没有解决我的问题。另外,如果这有什么不同,我将在此应用程序中使用 sql server 2008r2 express。 旧错误没有出现,新错误说: 'SqlExpress2008R2 不是有效的 Win32 应用程序。'

更新 2:

除了必须按照我在第一次更新中所说的操作外,我还必须将签名从“签署 ClickOnce 清单”更改为“签署程序集”,并且我的应用程序现在可以在 windows xp 上运行。

【问题讨论】:

这个似乎和你有关:***.com/questions/15782798/… 如何安装它?通过安装程序,单击一次,还是仅通过复制文件?您为哪个版本的 .Net 框架编译,该版本是否安装在客户端上?您是使用证书颁发者的证书,还是使用自签名证书进行发布? 您可能需要升级您的 Windows 安装程序。 “SQL Server 安装程序需要 Microsoft Windows Installer 4.5 或更高版本”来自msdn.microsoft.com/en-us/library/ms143506(v=sql.105).aspx @Jason Hughes,4.5 不适用于 windows xp,4.0 是 xp 的最新版本。 常见错误。我不得不将 SQL2008 R2 的无人值守安装推广到数千台 XP 机器上。我需要的最大先决条件是升级 Windows 安装程序。它也需要重新启动,这很有趣。 【参考方案1】:

您无法在 Windows XP 中运行或构建 vb.net 2012/2013 或更高版本。

解决方案 - 在 Windows XP 中使用 vb.net 2010,在那里运行并构建您的代码。

如果有任何问题很高兴回答。

【讨论】:

【参考方案2】:

.NET 框架的目标是 4.0,目标 cpu 是“Any CPU”,我将其更改为 x86。有问题的 xp pc 具有 .NET4.0、XP SP3 并且是 32 位的。 我还必须将签名从“签署 ClickOnce 清单”更改为“签署程序集”,我的应用程序现在正在 windows xp 上运行。

【讨论】:

以上是关于应用程序无法在 windows xp 上运行的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows XP 上运行 Visual Studio 2012 程序

如何让我的 VB.net 程序在 Windows XP 上运行?

C# 应用程序在 Windows 7 中运行,但不在 Windows XP 中

visual c++ 2012 应用程序无法在 windows xp 下运行 - 已更新

如何在 xp 和 windows 7 上运行 SWT 应用程序

无法在 Windows XP 中运行使用 QT5 和 VS2013 创建的应用程序