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

C# 强名称签名对此程序集stdole.dll无效,c#,wpf,clickonce,stdole,C#,Wpf,Clickonce,Stdole,我刚刚开始在我的ClickOnce应用程序中出现以下错误。安装并运行同一应用程序时,在看似成功的安装之后,我会收到一条错误消息: 应用程序验证未成功 错误详细信息我可以看到问题是: 强名称签名对此程序集stdole.dll无效 当我点击进入详细信息时,我得到 在此操作期间检测到以下错误的错误详细信息。 *[04/13/2016 11:33:22 AM]System.Deployment.Application.InvalidDeploymentException (签名消失) -强名称签名对此程

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

应用程序验证未成功

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

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

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

在此操作期间检测到以下错误的错误详细信息。 *[04/13/2016 11:33:22 AM]System.Deployment.Application.InvalidDeploymentException (签名消失) -强名称签名对此程序集stdole.dll无效。 -来源:System.Deployment -堆栈跟踪:位于System.Deployment.Application.ComponentVerifier.VerifyStrongNameAssembly(字符串 文件路径,AssemblyManifest(AssemblyManifest)位于 System.Deployment.Application.ComponentVerifier.VerifyComponents() 在 System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState 子状态,AssemblyManifest部署清单,AssemblyManifest appManifest、Uri sourceUriBase、字符串targetDirectory、字符串组、, IDownloadNotification通知,下载选项)位于 System.Deployment.Application.ApplicationActivator.DownloadApplication(订阅状态 subState,ActivationDescription actDesc,Int64 transactionId, TempDirectory&downloadTemp)位于 System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState,ActivationDescription actDesc)位于 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri,布尔值isShortcut,字符串textualSubId,字符串 deploymentProviderUrlFromExtension,浏览器设置浏览器设置, 位于的字符串和错误页面URL) System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象 (州)


嘿,不确定您是否仍然没有解决问题,但请参阅本文:并根据您使用的Visual Studio版本应用它

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

详情请参阅网页:

  • 打开路径“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”,其中有一个文件stdole.dll,其大小为16kb且未签名

  • 打开路径“C:\Program Files(x86)\Microsoft.NET\Primary Interop Assemblys”,其中有一个文件stdole.dll,该文件大小为25kb,并且已签名

  • 将未签名的DLL替换为已签名的DLL,并进行了另一次发布


  • 这是一个非常隐秘的问题,它会一次又一次地潜入到您的脑海中(开发工具盒、构建机器等)。无论出于何种原因,Microsoft都会在Visual Studio程序集搜索路径中保留该程序集的未签名旧版本


    查看更多详细信息和一些答案,这可能有助于避免将来出现这种情况。

    不确定何时出现,但由于我的回答太多,这将被锁定。谢谢你的解决方案;尽管ClickOnce提供的错误日志非常隐秘,但实现只需不到5分钟。从
    C:\Program Files(x86)\Microsoft.NET\Primary Interop Assembly
    复制较大的stdole.dll也为我解决了这个问题。版本和文件夹不同(使用旧的VS 2013 Pro安装),但提供的路径将使您离得足够近。