“GalaSoft” MvvmLight 在可移植项目中找不到。

13
我已经复制了一个解决方案,其中包含基于GalaSoft MvvmLight库的多个项目,还有两个可移植项目。我已经安装了所有必需的NuGet包和引用,但是我无法构建这些可移植项目,而构建这些可移植项目是必要的,因为所有其他项目都引用它。
每当使用GalaSoft时,我都会得到以下错误消息。这是一个便携式类库项目。
 

错误 64:“GalaSoft”类型或命名空间未找到(是否缺少using指令或程序集引用)

我在此项目中已引用以下可移植的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天。此外,我尝试勾选和取消 Configuration Manager 中的“生成”选项(我在某个地方读到过),但都没有起作用。

另外,还有其他44个警告。它们中的所有警告都类似于下面的警告:

警告 28 无法解析主引用“GalaSoft.MvvmLight”,因为它对框架程序集“System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”具有间接依赖性,而该程序集无法在当前定向的框架“.NETPortable,Version=v4.0,Profile=Profile158”中解析。要解决此问题,请删除引用“GalaSoft.MvvmLight”或将应用程序重新定向到包含“System.Linq.Expressions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”的框架版本。

编辑: 问题标题已修订


你需要去Nuget上联系他们。在针对4.0、4.0.3和4.5的PCL中尝试安装https://www.nuget.org/packages/MvvmLightlibs/,但没有一个包会安装,因为它们声称不兼容。当您的项目是PCL时,这是他们指示您安装的软件包。他们专门为PCL声明的项目 https://www.nuget.org/packages/Portable.MvvmLightLibs/ 已经过时,并且要使用MvvmLightLibs软件包。因此,在他们这一端肯定出了某些问题 - user1228
@Will 我已经尝试将\Portable.MvvmLightLibs.4.4.32.1\lib\portable-net45+wp8+win8+wpa81\GalaSoft.MvvmLight.Extras.dll添加为引用,但仍然出现相同的错误。 - TaLha Khan
你可以试着倒立时加入金银花,这没关系。他们所谓的PCL兼容其实并不兼容。你的错误与你无关,完全是他们的问题。看起来他们需要修复它。你应该让Galasoft公司注意到这个问题。我认为他们是一群好人,应该愿意帮助你。祝你好运。 - user1228
1
无论如何,我已经联系了HDIC,希望他能过来帮忙。 - user1228
1个回答

1
您的问题是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目标。

enter image description here


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