我最近在.NET Core 2.0项目中添加了MVC,该项目在.NET Framework 4.7(<TargetFramework>net47</TargetFramework>
)上运行。这是一个通过Kestrel服务器在本地托管的Web项目。在添加MVC之前,没有任何问题。
我在开发人员计算机(Visual Studio 2017)上构建它,并且在该计算机上运行它时,它可以正常工作。 (因为存在以下文件夹:C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.7,其中包含所有必需的程序集)。这些将作为程序集(自动)添加到项目中。
但是当我将bin / release复制到新的Win10计算机(安装.NET Framework 4.7并尝试在其中运行它时,它将失败,并带有以下异常:
System.InvalidOperationException:找不到引用程序集包的'.NETFramework / v4.7 / Microsoft.CSharp.dll'文件Microsoft.CSharp.Reference
如果我将这个dll手动复制到垃圾箱中,则由于下一个dll继续出现异常。我复制了:Microsoft.CSharp,mscorlib,System,System.ComponentModel.Composition,System.ComponentModel.DataAnnotations,System.Core,System.Data,System.Drawing,System.IO.Compression.FileSystem等,因此您看到了没有结束。
我也尝试过这些建议:
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />
添加到.csproj(https://github.com/dotnet/sdk/issues/1488)<DependsOnNETStandard>netstandard2.0</DependsOnNETStandard>
添加到.csproj<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
添加到.csproj(Asp.net Core 2.0 with .net framework 4.6.1 - Cannot find reference assembly '.NETFramework/v4.6.1/Microsoft.CSharp.dll)我的项目中肯定有什么问题,但是我现在真的很头绪,如果有人可以给我一些建议,我将非常感激。
生产和开发的红est Web服务器均正常运行。
仅是在当前版本和引用不断变化的环境中的注释,我遇到了许多相同的问题,并且找到了一个可能对将来的项目有所帮助的简单解决方案。当我添加需要各种映射以进行版本控制和引用架构的库或框架时,我创建了充当框架自己的包装程序和版本控制的库项目,将其部署到程序包管理器,然后通过以下方式将该包装程序项目链接到主项目:包裹经理。这样做的好处是,您可以管理版本控制的维护(路径和绑定)并自己引用,而不是直接绑定到主项目(所有引用都具有自己的标准化绑定)]
希望这有助于找到解决方案。