我克隆了一个解决方案,它包含多个基于 GalaSoft MvvmLight 库的项目,还有两个可移植项目。我已经安装了所有必需的 nuget 包和引用,但我无法构建这些可移植项目,并且需要先构建这些可移植项目,因为所有其他项目都引用它。
我在使用 GalaSoft 的每个文件中都遇到了这个(如下)错误。它是一个可移植类库项目。
Error 64 The type or namespace name 'GalaSoft' could not be found (are you
missing a using directive or an assembly reference
我在这个项目中引用了这个(下面)Portable MvvmLight 库
\MvvmLightLibs.4.4.32.7\lib\netcore45\GalaSoft.MvvmLight.dll
\MvvmLightLibs.4.4.32.7\lib\netcore45\GalaSoft.MvvmLight.Extras.dll
这是平台目标
我尝试清理并重新启动 visual studio。我在这个问题上停留了 2 天多了。此外,我尝试在配置管理器中选中和取消选中“构建”选项(我在某处阅读过)但没有奏效。
此外,还有其他 44 个警告。所有这些看起来都类似于以下警告。
Warning 28 The primary reference "GalaSoft.MvvmLight" could not be resolved
because it has an indirect dependency on the framework assembly "System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETPortable,Version=v4.0,Profile=Profile158". To resolve this problem, either remove the reference "GalaSoft.MvvmLight" or retarget your application to a framework version which contains "System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
编辑: 修改题名
最佳答案
所以你的问题是 mvvm light 没有针对你的 PCL 配置文件的包。
当您使用 nuget install MvvmLightLibs
下载程序包时,您可以看到该程序包仅包含一个 PCL 配置文件的程序集。 Mvvm light 支持 portable-net45+wp8+wpa81+netcore45+monoandroid1+xamarin.ios10
。但是您的 PCL 目标是 .NETPortable,Version=v4.5,Profile=Profile78
。
如果您不希望您的项目与 mvvm light 兼容,则必须删除 sl5 目标。
关于c# - 在可移植项目中找不到“GalaSoft”MvvmLight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381123/