应用程序不会在Windows XP上运行 [英] Application will not run on windows xp

查看:93
本文介绍了应用程序不会在Windows XP上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



I have created a vb.net 2013 application, I have published it and installed it on my work pc (windows 7) and my laptop (also windows 7) and they both work fine. I tried installing it on the pc this application is to go on which is windows xp, I got an error with the following details:

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中更改签名显示'to'签署程序集',我的应用程序现在正在使用windows xp。



This is the first time I have published an application so I don't know why this is happening, I can only assume that it has something to do with windows xp. I would appreciate any help with this problem.

Update:
The .NET framework is targeted at 4.0, and the target cpu was 'Any CPU' and I changed it to x86. The xp pc in question has .NET4.0, XP SP3 and is 32-bit but this still hasn't solved my problem. Also, I am using sql server 2008r2 express in this application if that makes any difference.
The old error is not coming up and the new one says:
'SqlExpress2008R2 is not a valid Win32 application.'

Update 2:

As well as having to do what I said in my first update, I also had to change the signing from 'Sign the ClickOnce manifests' to 'Sign the assembly' and my application is now working on windows xp.

推荐答案

检查应用程序属性。 5.1.2600.196608(Win32NT)是一个32位版本的XP,所以如果你已经构建了64位应用程序,那么即使它是为正确版本的.NET构建的,也无法加载



尝试在属性页面的Buld选项卡的Platform Target下拉列表中重建x86,然后查看问题是否消失。
Check the application properties. 5.1.2600.196608 (Win32NT) is a 32 bit version of XP, so if you have built your app for 64 bit then it will fail to load even if it is built for the right version of .NET

Try rebuilding it for "x86" under the "Platform Target" dropdown of the "Buld" tab of the Properties page and see if the problem goes away.


这篇关于应用程序不会在Windows XP上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆