我正在使用ClickOnce部署WPF应用程序。应用程序在我的机器上从VS2012运行正常,但是当我尝试从ClickOnce安装它时,它显示以下错误,我理解这是非常常见的:
当我继续做进一步的研究时,我真的无法找到为什么ClickOnce要求Prism.SharedInterfaces v1.1.1.0。
以下是我检查的一些内容:
我按照物理文件的路径,确保.dll属性中的版本是1.0.0.0。
我还在记事本中打开了项目解决方案文件,并查找了我可能错过的任何隐藏参考。我已经清理并重建了一百次解决方案。
发布时,我确保该文件包含在应用程序文件中。
最后,我下载了Process Explorer(允许您检查应用程序使用的程序集),它仍然显示仅使用了SharedInterfaces.dll v1.0.0.0。
在任何地方我都无法看到Microsoft.Practices.Prism.SharedInterfaces.dll v1.1.1.0被引用或使用。为什么ClickOnce要求它?
我还发现您可以在App.config文件中添加以下代码以强制使用版本:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Practices.Prism.SharedInterfaces" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.0.0.0" />
</dependentAssembly>
但没有运气..我的想法已经用完了。任何帮助将不胜感激。
提前致谢!
答案 0 :(得分:0)
在发布应用程序之前,您需要转到项目属性并应用设置来安装先决条件。
答案 1 :(得分:0)
我在源文件中的一个文件夹中找到了Microsoft.Practices.Prism.SharedInterfaces.dll v1.1.1.0(请注意我没有启动项目,我是从公司的离开承包商那里拿起来的。工作并被指派完成它)。我猜测ClickOnce会以某种方式包含部署中的文件或版本,以及它为什么要求它。一旦我将v1.1.1.0 dll添加到引用并删除了v1.0.0.0,问题就解决了。