我使用ClickOnce部署在VS.NET 2008中构建了一个WPF应用程序.它在安装了VS.NET的任何机器上都运行良好,但是我的业务用户收到错误:"无法安装或运行应用程序.应用程序需要安装程序集Microsoft.Windows.Design.Extensibility版本3.5.0.0全局程序集缓存(GAC)首先."
我很惊讶地发现这个dll不是标准.NET 3.5 SP1客户端安装的一部分,但不知何故,我的应用程序认为它是必需的.我检查了项目的"发布"选项卡,它显示为先决条件.
奇怪的是,我能够删除它(以及所有其他的Microsoft.Windows.Design.*dlls),它只是在任何地方都可以使用.我完全从项目中删除了它们,一切都很好.
有人可以解释为什么VS.NET 2008项目向导强制将这些项目包含在项目中,更重要的是,为什么ClickOnce认为他们需要在客户端计算机上运行?
这只是一个好奇的问题,但我确信我不是第一个被它咬伤的人.希望这篇文章至少会让别人头疼.