5

我刚刚开始在我的ClickOnce应用程序中收到以下错误。安装和运行相同的应用程序时,看似成功安装后,我收到一条错误消息:

应用程序验证未成功

错误详细信息我可以看到问题是:

强名称签名对此程序集 stdole.dll 无效。

当我点击详细信息时,我得到

错误详细信息 在此操作期间检测到以下错误。* [04/13/2016 11:33:22 AM] System.Deployment.Application.InvalidDeploymentException (SignatureValidation) - 强名称签名对此程序集 stdole.dll 无效。- 来源:System.Deployment - 堆栈跟踪:在 System.Deployment.Application.ComponentVerifier.VerifyStrongNameAssembly(String filePath, AssemblyManifest assemblyManifest) 在 System.Deployment.Application.ComponentVerifier.VerifyComponents() 在 System.Deployment.Application.DownloadManager.DownloadDependencies( System.Deployment 中的 SubscriptionState subState、AssemblyManifest deployManifest、AssemblyManifest appManifest、Uri sourceUriBase、String targetDirectory、String group、IDownloadNotification 通知、DownloadOptions 选项。

4

2 回答 2

7

嘿 不确定您是否还没有发现问题,但请参考这篇文章:strong-name-signature-not-valid-for-this-assembly-stdole-dll并根据您的 Visual Studio 版本应用它正在使用。

问题是 ClickOnce 应用程序正在尝试使用 stdole dll 的未签名版本,但您需要对其进行签名。

来自网页的详细信息:

  1. 打开路径“C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11”和“C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA \Office12”,有一个 16kb 大且未签名的文件 stdole.dll

  2. 打开路径“C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies”,有一个 25kb 大的文件 stdole.dll 并签名

  3. 将未签名的 dll 替换为已签名的 dll 并再次发布

于 2016-05-23T17:26:53.073 回答
1

这是一个非常隐蔽的问题,它会一次又一次地潜伏在你身上(开发箱、构建机器等)。无论出于何种原因,Microsoft 都会在 Visual Studio 程序集搜索路径中保留旧的未签名版本的程序集。

查看为什么 Visual Studio 2015 将 stdole.dll 和 Microsoft.AnalysisServices.AdomdClient.dll 添加到我的项目中?有关更多详细信息和一些答案,这可能有助于将来避免这种情况。

于 2016-06-23T15:19:15.983 回答