1

我已经构建了一个 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
  • 降级到以前工作的版本
  • 将 <loadFromRemoteSources enabled="true"> 添加到我的 app.config
  • 将 <loadFromRemoteSources enabled="true"> 添加到 Visual Studio 安装目录中的 devenv.exe.config
  • 在 Internet 选项中将存储我的应用程序的网络驱动器的 IP 添加到本地 Intranet 区域(应用程序存储在网络驱动器上)

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

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

4

2 回答 2

1

我的项目存储在 OneDrive 上。

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

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

 C:\Users\denni\source\repos\...
于 2020-04-03T15:17:14.927 回答
1

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

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

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

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

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

于 2018-05-23T14:44:46.547 回答