2010-05-18 7 views
3

Je développe une application pour Office. À l'origine, il ciblait .net 3.5, mais j'ai décidé de passer à .net 4 en raison de problèmes rencontrés par WPF.Mise à niveau du projet VSTO vers .net 4 - De quelles références ai-je réellement besoin?

Lorsque j'ai basculé tous les projets dans ma solution et reconstruit, j'ai reçu une erreur disant d'inclure System.Xaml. Je l'ai fait et reconstruit, et VS2010 m'a dit d'inclure une autre référence, alors je l'ai fait. Cela s'est produit quelques fois de plus, et enfin il m'a demandé d'inclure Microsoft.Office.Tools.Common.v9.0, et quand j'ai fait, j'ai eu cette erreur:

Microsoft.Office.Tools.CustomTaskPaneCollection existe à la fois Microsoft .Office.Tools.Common.v9.0.dll et Microsoft.Office.Tools.Common.dll

J'ai à la fois Microsoft.Office.Tools.Common.v9.0 et Microsoft.Office.Tools.Common référencé dans mon projet, mais le problème est que si j'enlève l'un ou l'autre, j'obtiens une erreur. Est-ce que je fais quelque chose de mal? Est-il étrange que j'aurais besoin des deux références? Je trouve étrange que CustomTaskPaneCollection soit défini dans deux binaires différents. Si je supprime Microsoft.Office.Tools.Common, l'erreur que je reçois est "Impossible de trouver le type d'interopérabilité qui correspond au type d'interopérabilité incorporé 'Microsoft.Office.Tools.IAddInExtension'. Vous manque une référence d'assembly? "

Répondre

2

'Microsoft.Office.Tools.IAddInExtension' fait partie de Microsoft.Office.Tools.Common.dll seulement. La suppression de Microsoft.Office.Tools.Common.v9.0 ne devrait donc pas poser de problème. Toutefois, si l'un de vos projets référencés ou impliqués comporte Microsoft.Office.Tools.Common.v9.0, vous devez le remplacer par Microsoft.Office.Tools.Common.dll. Une fois que vous faites cela, cela devrait résoudre votre problème. La base de référence est que tous les projets/dll référencés doivent être recompilés après avoir changé la plate-forme cible en 4.0 si l'un d'entre eux utilise les dlls VSTO.

Espérons que ça aide.