【发布时间】: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 上运行。
【问题讨论】:
-
如何安装它?通过安装程序,单击一次,还是仅通过复制文件?您为哪个版本的 .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 安装程序。它也需要重新启动,这很有趣。
标签: vb.net winforms windows-7 windows-xp publishing