dotnet core:找不到汇编文件Microsoft.CSharp.dll

时间:2017-07-28 19:06:07

标签: c# .net-core

我有一个项目,我有一段时间没有运行,使用dotnet核心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)

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

7 个答案:

答案 0 :(得分:11)

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

虽然只是解决方法,但遇到此问题时最好的选择是复制丢失的DLL。我通过复制操作将它们设置为项目中的组件。一旦修复(目前为Triaged: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" />

答案 1 :(得分:1)

您是否已加入Microsoft.CSharp.dll参考?展开您的项目,右键点击References,点击Add Reference,搜索Microsoft.CSharp,选中相应框,然后点击OK

Select Microsoft.CSharp

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我有<DependsOnNETStandard>true</DependsOnNETStandard>,我不得不将其更改为<DependsOnNETStandard>netstandard1.6</DependsOnNETStandard>

<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

答案 4 :(得分:0)

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

尽管如此,我仍在努力解决问题。.在这里我使用Visual Studio 15.8.1,这个问题似乎是个鬼。虚假的警告。在项目上工作时,感叹号会保留,但是什么也没有发生,不会打扰任何东西或中断重建。程序集按预期运行。

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

答案 5 :(得分:0)

我遇到了类似的问题,在 .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

答案 6 :(得分:-6)

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