Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么VS.NET试图为WPF和ClickOnce包含Microsoft.Windows.Design.Extensibility?_Wpf_Clickonce - Fatal编程技术网

为什么VS.NET试图为WPF和ClickOnce包含Microsoft.Windows.Design.Extensibility?

为什么VS.NET试图为WPF和ClickOnce包含Microsoft.Windows.Design.Extensibility?,wpf,clickonce,Wpf,Clickonce,我在VS.NET2008中使用ClickOnce部署构建了一个WPF应用程序。它在任何安装了VS.NET的计算机上都运行得很好,但我的业务用户收到一个错误:“无法安装或运行该应用程序。该应用程序要求首先在全局程序集缓存(GAC)中安装程序集Microsoft.Windows.Design.Extensibility版本3.5.0.0。” 我惊讶地发现,这个dll不是标准.NET3.5SP1客户端安装的一部分,但不知为什么,我的应用程序认为它是必要的。我检查了项目的“发布”选项卡,它显示为一个先决

我在VS.NET2008中使用ClickOnce部署构建了一个WPF应用程序。它在任何安装了VS.NET的计算机上都运行得很好,但我的业务用户收到一个错误:“无法安装或运行该应用程序。该应用程序要求首先在全局程序集缓存(GAC)中安装程序集Microsoft.Windows.Design.Extensibility版本3.5.0.0。”

我惊讶地发现,这个dll不是标准.NET3.5SP1客户端安装的一部分,但不知为什么,我的应用程序认为它是必要的。我检查了项目的“发布”选项卡,它显示为一个先决条件

奇怪的是,我能够删除这个(以及所有其他的Microsoft.Windows.Design.*DLL),而且它在任何地方都能正常工作。我把它们从我的项目中完全删除了,一切都很好

有人能解释一下为什么VS.NET 2008项目向导强制将它们包含在项目中,更重要的是,为什么ClickOnce认为它们需要在客户机上运行


这只是一个好奇的问题,但我肯定我不是第一个被它咬到的人。希望这篇文章至少能帮其他人省去头痛的事。

我发现我使用的是SelectionCommands.Clear属性,该属性位于Microsoft.Windows.Design.Interaction命名空间中的Microsoft.Windows.Design.Extensibility版本dll中


这可能是.NET 3.5安装中不包含此dll的原因。

此处解释了查找加载程序集的代码的方法:


这是旧的,OP已经不存在了,但是我今天遇到了这个问题,所以我想我应该提到我的解决方案是删除对以
.Design
结尾的WPFToolkit引用之一的引用


我引用了
System.Windows.Controls.Input.Toolkit
,但也引用了
System.Windows.Controls.Input.Toolkit.Design
,这本不应该出现在那里。删除它,世界又恢复正常。

尝试删除对*.Design.dll的所有引用。在我的例子中,它是WPFToolkit.Design.dll。

我上周才遇到这个!仍然无法理解为什么要添加引用!