我正在使用.Net Core
创建我的第一个项目,但是在使两个Nuget
软件包可能正常工作时遇到了一些问题。
尝试调试应用程序时,出现以下两个错误:
Could not load file or assembly 'GalaSoft.MvvmLight, Version=5.4.1.0, Culture=neutral, PublicKeyToken=0ffbc31322e9d308'. The system cannot find the file specified.
Could not load file or assembly 'GongSolutions.WPF.DragDrop, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0ffbc31322e9d308'. The system cannot find the file specified.
现在,这是在解决方案资源管理器中对这些软件包的说明:
显示的版本与错误显示的版本不同。我搜索了项目中的每个文件,并且发现错误显示版本的唯一地方是项目的.deps.json
文件,该文件显示以下内容:
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.0": {
"TestProject/1.0.0": {
"dependencies": {
"MvvmLightLibsStd10": "5.4.1.1",
"gong-wpf-dragdrop": "2.1.0",
},
"runtime": {
"TestProject.dll": {}
}
},
"gong-wpf-dragdrop/2.1.0": {
"runtime": {
"lib/netcoreapp3.0/GongSolutions.WPF.DragDrop.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.1.0.2"
}
}
},
"MvvmLightLibsStd10/5.4.1.1": {
"runtime": {
"lib/netstandard1.0/GalaSoft.MvvmLight.dll": {
"assemblyVersion": "5.4.1.0",
"fileVersion": "5.4.1.0"
}
}
},
我尝试更改以上内容以匹配正确的版本,但没有做任何更改。
我还尝试了什么:
我确实注意到错误的软件包确实存在于C:\Users\myname\.nuget\packages
下的其他文件夹中,但与我使用的实际.dlls
的视觉工作室向我展示的路径不匹配。 / p>
一些可能有用的注释:
整个解决方案包含两个项目:一个WPF Windows Application
(包含一个Window
)和一个WPF Class Library
(其中一个UserControl
托管在wpf应用程序项目中)。
Class Library
包含nuget程序包。
两个项目都以.NET Core 3.0
为目标。
更新:我尝试将以下内容放入两个<PropertyGroup>
文件的.csproj
标记中:
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
他们都没有工作。