使用FodyIsolated.dll

时间:2018-05-23 10:07:51

标签: c# wpf fody-costura

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

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

我尝试了很多东西:

  • 检查FodyIsolated.dll是否被阻止(不是)
  • 升级至最新版本的Costura.Fody Nuget
  • 卸载并重新安装Costura.Fody Nuget
  • 降级到之前有效的版本
  • 添加&lt; loadFromRemoteSources enabled =“true”&gt;到我的app.config
  • 添加&lt; loadFromRemoteSources enabled =“true”&gt;到Visual Studio安装目录中的devenv.exe.config
  • 将存储我的应用程序的网络驱动器的IP添加到Internet选项中的本地Intranet区域(应用程序存储在网络驱动器上)

上述解决方案之一适用于面临此问题的所有其他人,但他们都没有帮助过我。我希望有人可以给我另一种选择,或指出我哪里出错。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

因此,如果其他人遇到此问题,请尝试将解决方案的文件夹添加到Intranet区域,因为这会修复它。

答案 1 :(得分:0)

我的项目存储在OneDrive中。

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

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

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