【问题标题】:dotnet core : Can not find assembly file Microsoft.CSharp.dlldotnet 核心:找不到程序集文件 Microsoft.CSharp.dll
【发布时间】:2021-03-19 17:21:42
【问题描述】:

我有一段时间没有运行的项目,使用 dotnet core 1.1.2 依赖项构建。

与此同时,我更新了 Visual Studio,可能为 2.0 安装了一些 dotnet 核心的东西,我的应用程序不再运行。

InvalidOperationException: Can not find assembly file Microsoft.CSharp.dll at 'C:\dev\EarthML\EarthML.Mapify\src\EarthML.Mapify.Portal\bin\Debug\net462\win10-x64\refs,C:\dev\EarthML\EarthML.Mapify\src\EarthML.Mapify.Portal\bin\Debug\net462\win10-x64\'
Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver.TryResolveAssemblyPaths(CompilationLibrary library, List<string> assemblies)

我该怎么做才能开始弄清楚它为什么不起作用?

【问题讨论】:

  • 根据您的例外情况,它注意到net462\win10-x64。我高度怀疑您的.csproj 文件需要审查。如果你不介意分享一下?
  • 我将应用程序升级到 dotnet core 2.0 和 razor pages 并解决了这个问题。
  • 您的程序集路径似乎缺少 GAC。

标签: c# .net-core


【解决方案1】:

这似乎是当前版本的 Visual Studio (15.3) 的一个错误。根本问题是,当 View 尝试构建时,它们没有引用 GAC,因此没有任何依赖关系。

虽然只是一种解决方法,但遇到此问题时最好的办法是复制丢失的 DLL。我通过复制操作将它们设置为我的项目中的组件。一旦它得到修复(目前被分类:https://developercommunity.visualstudio.com/content/problem/96927/runtime-error-after-upgrading-to-vs-153-invalidope.html),那么就是删除它们的问题。

编辑

或者,根据https://github.com/dotnet/sdk/issues/1488,添加这个作为对项目的引用应该可以工作,而不是添加所有依赖项:

<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />

【讨论】:

  • 这个修复对我不起作用——你已经在 .NET Core 2.0 上了吗?
  • 没有。但迁移到 2.0 将解决您的问题。
  • 抱歉,您知道升级实际上解决了这个问题吗?
  • 没有。对不起。根据答案中的开发者社区链接,该问题目前处于“正在调查中”。
  • Microsoft.Extensions.DependencyModel为我解决了。
【解决方案2】:

您是否包含Microsoft.CSharp.dll 参考?展开你的项目,右键References,点击Add Reference,搜索Microsoft.CSharp,勾选复选框,点击OK

【讨论】:

  • 是的,还添加了 nuget Microsoft.CSharp 4.3.0
  • 但它不在输出 bin 文件夹中
【解决方案3】:

我将应用程序升级到 dotnet core 2.0 和 razor pages 并解决了这个问题。

【讨论】:

  • 我升级到了2.0,问题依旧存在。 :(你还有什么改变吗?
【解决方案4】:

我有&lt;DependsOnNETStandard&gt;true&lt;/DependsOnNETStandard&gt;,我不得不将其更改为&lt;DependsOnNETStandard&gt;netstandard1.6&lt;/DependsOnNETStandard&gt;

<PropertyGroup>
    <TargetFramework>net462</TargetFramework>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
    <IsServiceFabricServiceProject>True</IsServiceFabricServiceProject>
    <AssemblyName>MyProject</AssemblyName>
    <Platforms>AnyCPU;x64</Platforms>
    <DependsOnNETStandard>netstandard1.6</DependsOnNETStandard>
</PropertyGroup>

来源:来自GitHub Isue的neman

【讨论】:

    【解决方案5】:

    在我的 C# 项目中,一些 .NET Standard 类库支持 Core 控制台应用程序和 Winforms .net 4.7 程序。昨天我打开了我的项目,其中一个.NET 标准 dll 给出了上述错误,引用带有感叹号,解决方案中依赖它的所有库都一样!看起来很吓人。

    不过,我一直在研究我的解决方案。我在这里使用 Visual Studio 15.8.1,这个问题似乎很可怕。一个虚假的警告。在处理项目时感叹号仍然存在,但没有任何反应,它不会干扰任何东西或中断重建。程序集按预期运行。

    几分钟前,我通过删除 Microsoft.CSharp 引用解决了这个问题,然后全部重建。它仅在一个库中,因此重建解决了解决方案中的所有感叹号。参考消失了,晴朗的天空。

    【讨论】:

      【解决方案6】:

      我有类似的问题,在 .net 标准中使用“Microsoft.CSharp”中的“动态”类型。该项目是从 Visual Studio 构建的,但在 azure devops 发布管道中失败了。从 nuget 添加引用解决了这个问题。

      通过https://www.nuget.org/packages/Microsoft.CSharp/安装 参考(学分):https://mikaelkoskinen.net/post/net-core-standard-missing-compiler-required-member

      【讨论】:

        【解决方案7】:

        清理解决方案并重建它。 如果不工作创建新项目然后复制 dll 并粘贴。 祝你好运。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-03
          • 1970-01-01
          相关资源
          最近更新 更多