c# - 应用程序的强名称验证失败

标签 c# dll

我制作了一个使用 C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0\System.Management.Automation.dll 的 C# 应用程序

我也将 dll 复制到我的 bin 文件夹中。它工作正常,但如果我将 bin 文件夹复制到另一台机器并运行可执行文件,我会收到此错误:

************** Exception Text **************
System.IO.FileLoadException: Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)
File name: 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A)

注意:我根本没有签署程序集。 此外,我不想通过修改注册表项来禁用安全性。我只想正确修复它。 关于如何在不全局注册 dll 的情况下解决此问题的任何想法?

更新:我尝试将整个 visual studio 项目复制到另一台机器上。它在 Windows 8 上工作时在 Windows 7 上不工作。

最佳答案

您可以通过更改在 app.confg 中删除对程序集的强引用

System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

System.Management.Automation

但我建议使用 Fuslogvw 获取更多关于到底出了什么问题的信息。 (可以将其与支持 dll 一起复制到目标服务器上)。

这将向您准确显示应用程序在何处探测 dll 以及导致问题的原因。也许您有另一个 dll 需要添加到您的 bin 文件夹中,或者 GAC 可能在另一个 dll 上胜出。

关于c# - 应用程序的强名称验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219885/

相关文章:

javascript - 从IE浏览器调用winform函数

c# - UWP - 缩放图像(捏缩放和双击),翻转 View

c++ - 线程在完成执行代码之前在动态库中中止

java - 在 iphone 应用程序上使用 java 库

c# - 如何每隔几秒截屏一次C#控制台

c# - 在确定推荐时我应该使用 Request.UrlReferrer

c# - 操作而不是查询拦截器(WCF 数据服务)

windows - DLL 中函数名称的最大长度

c# - 将地址与地址列表进行比较

c++ - 如何使用 DLL 在应用程序中实现单例