FodyIsolated.dll Costura Fody 抛出错误

Costura Fody throwing error with FodyIsolated.dll

我构建了一个 WPF 应用程序,并使用 Costura.Fody 将其合并为一个 exe。这一直有效到今天,我所知道的唯一变化是我升级了 Visual Studio(社区版到 15.7.2)。

现在构建时会在启动后立即抛出错误: 无法加载文件或程序集 '<directory of my app>\packages\Fody.3.0.3\netclassictask\FodyIsolated.dll' 或其依赖项之一。不支持操作。 (HRESULT 异常:0x80131515)

我已经尝试了很多事情:

上述解决方案之一适用于面临此问题的其他所有人,但其中 none 对我有所帮助。我希望有人能给我另一个选择,或者指出我哪里出错了。

需要说明的是,如果我删除 Costura.Fody,应用程序构建正常,但显然所有 dll 都与 exe 分开。

经过更多的实验和研究,我自己设法解决了这个问题。

我注意到这个特定错误的一个共同主题是网络驱动器上的文件,所以我尝试了 运行 来自我的 C 驱动器的解决方案,令我惊讶的是它构建没有问题。

所以我做了更多的谷歌搜索并偶然发现了这个:https://blogs.msdn.microsoft.com/shawnfa/2009/06/08/more-implicit-uses-of-cas-policy-loadfromremotesources/

它的重要部分是它如何处理正在加载的程序集。我在正确的区域将服务器的 IP 添加到 Intranet 区域,它只需要是解决方案所在文件夹的完整路径。

因此,如果其他人遇到此问题,请尝试将您的解决方案的文件夹添加到 Intranet 区域,这样可以解决问题。

我的项目存储在 OneDrive 上。

 C:\Users\denni\OneDrive\Documents\....

我将完整的项目复制到我的本地磁盘上,问题消失了。

 C:\Users\denni\source\repos\...

我绞尽脑汁想找出这个异常,因为我的项目位于本地驱动器上,但它却抱怨从网络共享加载。应用上述修复程序后,我仍然遇到此错误。事实证明,由于我公司的组策略,在某些时候该项目与我的 PC 处于不同的“区域”。他们将我们的 windows 配置文件推送到 Onedrive 架构,由于该设置存在其他错误,我已将我的 Documents\Projects 文件夹克隆到另一个本地驱动器。

这样做是在 DLL 上放置了一个安全“块”,就像它是从另一个安全区域复制的 EXE。我必须进入项目包文件夹并右键单击 -> 每个嵌套 DLL 文件的属性,然后单击属性窗格底部的复选框“取消阻止”。这样做之后,Fody 异常被清除。