Asp.net Core 2.0 在使用 .net framework 4.6.1 时,找不到引用程序集 '.NETFramework/v4.6.1/Microsoft.CSharp.dll'。

7

我最近将我的项目从asp.net core 1.1升级到asp.net core 2.0,并且应用程序正在使用.NET Framework 4.6.1。该应用程序在本地开发机器上按预期工作,但是一旦使用dotnet publish命令部署到服务器上,我就会看到以下错误:

InvalidOperationException: 找不到参考程序集“Microsoft.CSharp.dll”文件为包Microsoft.CSharp.Reference

我还注意到,在发布时使用asp.net core 1.1时存在的ref文件夹现在已经不存在了。如何解决这个问题。


你在发布时使用了 --self-contained 选项吗? - Simsons
不。应该使用吗? - Praneeth
--self-contained 将复制所有依赖项,并且在您的情况下似乎是这样。 - Simsons
即使添加了--self-contained,它仍然无法工作。 - Praneeth
请发布.csproj文件的内容。 - NightOwl888
请查看此链接:https://github.com/dotnet/cli/issues/4177 - devC
3个回答

8

当添加了MvcRazorCompileOnPublish到.csproj文件中时,相同的问题得到了解决。

试一下吧。

<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>

没错,就是这样。我没有 <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>。 - Praneeth

2
我注意到,如果你在启动IIS池时包含了编译后的View.dll中的Views文件夹,你会遇到这个错误。我曾经故意这样做来实现短期的解决方法。

0
在我的情况下(我在控制台应用程序模式下运行 .Net core),上述解决方案都不起作用,我只是从 this 链接下载了 .Net Framework 4.6.1。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接