应用程序不会在Windows XP上运行

时间:2014-08-14 13:36:10

标签: vb.net winforms windows-7 windows-xp publishing

我使用Visual Studio 2013创建了一个vb.net应用程序,我已将其发布并安装在我的工作电脑(Windows 7)和我的笔记本电脑(也是Windows 7)上,它们都运行良好。我尝试在PC上安装它,这个应用程序是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是“任何CPU”,我将其更改为x86。有问题的xp pc有.NET4.0,XP SP3并且是32位但是这仍然没有解决我的问题。此外,我在这个应用程序中使用sql server 2008r2 express,如果这有任何区别。  旧的错误没有出现,新的错误说:  “SqlExpress2008R2不是有效的Win32应用程序。”

更新2:

除了必须按照我在第一次更新中所说的那样做,我还必须将签名从“签署ClickOnce清单”更改为“签署程序集”,我的应用程序现在正在使用Windows XP。

2 个答案:

答案 0 :(得分:0)

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

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

如果有任何问题需要回答。

答案 1 :(得分:0)

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