向WPF项目添加MVVM Light引用会将大量系统程序集添加到随附的MSI安装项目中的依赖项列表中。然后,在安装应用程序时,会将这些程序集(数量超过50个)复制到应用程序文件夹中。为什么会这样?为什么不能直接从GAC引用它?
注意:对于MVVMLight.dll,复制本地选项设置为True。我显然无法将其设置为False。
再现它非常简单。我正在使用VS2015社区。 p>
你去吧。一长串 System.X.Y 将添加到列表中。如果您构建并安装安装项目,则会在Program Files文件夹中看到所有这些DLL。
为什么呢?以及如何解决它?
如果WPF应用程序以.NET Framework 4.0为目标并且您在此后添加NuGet引用,则不会出现此问题。但是,如果您以.NET 4.5,4.5.1或4.6为目标,则会再次出现很长的依赖项列表。认为MVVM Light(或NuGet)无法找到正确的包子文件夹。
答案 0 :(得分:0)
我不知道为什么会这样,但我可以提供解决方法。只需打开项目的Detected Dependencies文件夹,选择所有系统dll,右键单击并选择Exclude。
答案 1 :(得分:0)
过度攻击性依赖项扫描是我不使用Visual Studio部署项目的众多原因之一。相反,我使用WiX / IsWiX。都是开源的,后来都是我自己写的。
有关更多信息,请参见: