将MVVM Light引用添加到WPF项目中会在相应的MSI安装程序项目的依赖项列表中添加大量系统程序集。这些程序集(超过50个)在应用程序安装时将被复制到应用程序文件夹中。为什么会这样?为什么不能直接从GAC引用它?
注意:MVVMLight.dll的“复制本地”选项设置为True。我显然不能将其设置为False。
重现它非常简单。我正在使用VS2015 Community。
1. 创建一个新的WPF应用程序项目。 2. 添加对MVVM Light的NuGet引用(或Lib-only版本;无所谓)。 3. 将MSI安装程序项目添加到解决方案中(必须安装extension)。 4. 将WPF应用程序的主要项目输出添加到安装程序项目中。
这就是了。一长串System.X.Y将被添加到列表中。如果您构建并安装安装程序项目,您将在Program Files文件夹中看到所有这些DLL。
为什么?如何解决?
更新
如果WPF应用程序的目标是.NET Framework 4.0,并在此之后添加NuGet引用,则该问题不会出现。但是,如果您的目标是.NET 4.5、4.5.1或4.6,则长列表的依赖项会再次出现。认为MVVM Light(或NuGet)在查找正确的包子文件夹时存在问题。
注意:MVVMLight.dll的“复制本地”选项设置为True。我显然不能将其设置为False。
重现它非常简单。我正在使用VS2015 Community。
1. 创建一个新的WPF应用程序项目。 2. 添加对MVVM Light的NuGet引用(或Lib-only版本;无所谓)。 3. 将MSI安装程序项目添加到解决方案中(必须安装extension)。 4. 将WPF应用程序的主要项目输出添加到安装程序项目中。
这就是了。一长串System.X.Y将被添加到列表中。如果您构建并安装安装程序项目,您将在Program Files文件夹中看到所有这些DLL。
为什么?如何解决?
更新
如果WPF应用程序的目标是.NET Framework 4.0,并在此之后添加NuGet引用,则该问题不会出现。但是,如果您的目标是.NET 4.5、4.5.1或4.6,则长列表的依赖项会再次出现。认为MVVM Light(或NuGet)在查找正确的包子文件夹时存在问题。