【发布时间】:2011-07-30 20:41:50
【问题描述】:
背景:我有一个用 C# 编写的 winforms 应用程序,它通过从命令行调用第二个完全独立的应用程序 ConvertExcelTo.Exe 将 xlsx 文件转换为 csv。
错误摘要:
Application validation did not succeed. Unable to continue.
- Reference in the manifest does not match the identity of the downloaded assembly
ConvertExcelTo.exe.
- Source: System.Deployment
- 如何/在哪里编辑 Manifest 和 References 部分?
- 我必须进行哪些更改才能正确安装而不会出现任何错误??
在引用下,ConvertExcelTo 我有:Assembly ConvertExcelTo - C:\Users\bmccarthy\Documents\Visual Studio 2008\Projects\CCP Utility 3-31-11\CCP Utility\bin\Debug\ConvertExcelTo.exe
在引用下,ConvertExcelTo.vshost 我有:{} Microsoft.VisualStudio.HostingProcess、EntryPoint、基本类型、对象:~Object()、Equals(object, object)、Equals(object)、GetHashCode()、GetType( )、MemberwiseClone()、Object()、ReferenceEquals(object, object)、ToString()。
完整的错误详情:
WARNINGS
* The manifest for this application does not have a signature. Signature validation
will be ignored.
* The manifest for this application does not have a signature. Signature validation
will be ignored.
ERROR DETAILS
Following errors were detected during this operation.
* [4/6/2011] System.Deployment.Application.InvalidDeploymentException(RefDefValidation)
- Reference in the manifest does not match the identity of the downloaded assembly
ConvertExcelTo.exe.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
at System.Deployment.Application.FileDownloader.OnModified()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
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)
这是我调用 ConvertExcelTo.exe 应用程序的 MainForm.cs 中的代码:
//Process that creates all the xlsx files in temp folder to csv files.
Process convertFilesProcess = new Process();
// command prompt execution for Converting Files from XLSX to CSV
//convertFilesProcess.StartInfo.WorkingDirectory = ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();
convertFilesProcess.StartInfo.FileName = "ConvertExcelTo.exe";
convertFilesProcess.StartInfo.Arguments = " " + tempfolder + "\\ " + "csv";
convertFilesProcess.StartInfo.UseShellExecute = false;
convertFilesProcess.StartInfo.CreateNoWindow = true;
convertFilesProcess.StartInfo.RedirectStandardInput = true;
convertFilesProcess.StartInfo.RedirectStandardOutput = true;
convertFilesProcess.StartInfo.RedirectStandardError = true;
convertFilesProcess.Start();
convertFilesProcess.WaitForExit();
StreamReader sOut = convertFilesProcess.StandardOutput;
StreamReader sErr = convertFilesProcess.StandardError;
sOut.Close();
sErr.Close();
感谢收看!
【问题讨论】:
-
查看为您的部署生成的清单。它们可能是应用程序名称的差异???在 ErrorSummary 中,有这一行“清单中的引用与下载的程序集 ConvertExcelTo.exe 的标识不匹配。”
-
@jonnyItunes,感谢您的回复。我编辑了我的问题,让您更好地了解问题。此应用程序从命令行调用第二个完全独立的应用程序 ConvertExcelTo.Exe。我在哪里可以编辑清单或引用?我不认为 ConvertExcelTo 作为外部应用程序需要参考,对吧?
-
见下面的答案。希望对您有所帮助。
标签: c# winforms error-handling failed-installation