【发布时间】:2017-10-25 15:26:58
【问题描述】:
我有一个最初针对 4.6.1 的网络应用程序。这个网络应用程序引用了一个类库;反过来,这又引用了一个 Net Standard 1.6 类库。
添加对 Net Standard 库的引用是最新的更改,并且似乎导致它崩溃:在引入 Net Standard 库之前,Web 应用程序运行良好;此时,我开始收到错误:
无法加载文件或程序集 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其之一 依赖关系。系统找不到指定的文件。
System.Runtime 作为 NuGet 包包含在 Web 应用程序中。
这可能不相关,但是当我查看包目录时;我看到 System.Runtime.4.3.0\lib 有 net45 和 net462 目录,但没有 4.6.1 或 4.7(请参阅下文了解我为什么会这样)。
我尝试过的一些事情没有奏效:
- 尽管看到here 4.6.1 支持 Net Std 1.6,我还是尝试了 升级到 4.7,但无济于事。
- 尝试在 web.config 中设置程序集重定向。这会稍微改变错误,说它正在寻找 4.0.0.0,然后重定向启动,但它本质上是相同的错误。
- 尝试删除 packages 目录,看看是否可以强制刷新(也尝试了 System.Runtime 上的 Update-Package)。
- 在网上搜索时,我发现了几个类似的问题; GitHub 上的一个(我似乎无法重新定位)暗示对 VS2017 的更新将解决该问题。
网络上有足够多的最新内容让我觉得我不是唯一一个经历过这种情况的人;虽然我还没有找到任何解释可能是什么原因。任何人都可以解释可能导致此问题的原因或我可以使用的任何诊断步骤吗?
【问题讨论】:
-
你用的是什么版本的visual studio?
-
Visual Studio 2017 (15.4.1)
-
也许您可以创建最小的项目来复制它并将其发布到某个地方?
-
如果您还没有看到this,请查看。听起来像你的问题。
-
也许只有我一个人,但老实说,所有这些网络标准的东西似乎都过于复杂和骇人听闻。必须有更好的方法来实现共享库功能……
标签: c# asp.net .net .net-standard