我正在为Office开发一个应用程序。它最初的目标是.net 3.5,但我决定升级到.net 4,因为我遇到了一些WPF问题。
当我在我的解决方案中切换所有项目并重建时,我收到一条错误,说包括System.Xaml。我做了那个并重建了,VS2010告诉我要包含另一个引用,所以我做了。这发生了几次,最后它要求我包含Microsoft.Office.Tools.Common.v9.0,当我这样做时,我收到了这个错误:
Microsoft.Office.Tools.CustomTaskPaneCollection存在于Microsoft.Office.Tools.Common.v9.0.dll和Microsoft.Office.Tools.Common.dll
中我的项目中引用了Microsoft.Office.Tools.Common.v9.0和Microsoft.Office.Tools.Common,但问题是如果我删除它,我会收到错误。难道我做错了什么?奇怪的是我需要两个引用吗?我发现CustomTaskPaneCollection将在两个不同的二进制文件中定义,这一点很奇怪。
如果我删除了Microsoft.Office.Tools.Common,我得到的错误是“无法找到与嵌入式互操作类型'Microsoft.Office.Tools.IAddInExtension匹配的互操作类型。。您是否缺少程序集引用?”
答案 0 :(得分:2)
'Microsoft.Office.Tools.IAddInExtension'仅适用于Microsoft.Office.Tools.Common.dll。因此删除Microsoft.Office.Tools.Common.v9.0应该不是问题。 但是,如果您引用或涉及的任何项目中添加了Microsoft.Office.Tools.Common.v9.0,则需要将其更改为Microsoft.Office.Tools.Common.dll。一旦你这样做,它应该解决你的问题。基线是,如果其中任何一个使用VSTO dll,将目标平台更改为4.0后,需要重新编译所有项目/引用的dll。
希望有所帮助。