2009-05-04 9 views
1

J'essaie de déployer une application VB.NET qui est une extension d'Excel utilisant VSTO. Il fonctionne très bien dans l'environnement de développement, mais quand quelqu'un d'autre (sans environnement de développement installé, juste le framework .NET) installe, ils sont:Échec de VB.NET/VSTO2008; impossible de trouver le moteur d'exécution

Le Common Language Runtime ne pouvait pas être chargé par <application>. Contactez votre administrateur pour plus d'assistance.

Google pops la page d'aide de Microsoft pour cela:

http://msdn.microsoft.com/en-us/library/6s0wczt9.aspx

Mais j'ai vérifié que les versions .NET sont les mêmes sur les deux machines. Pour les applications VSTO en 2k5, les utilisateurs de la bibliothèque vsto runtime avaient besoin d'une installation spécifique. Existe-t-il quelque chose de similaire pour VS2008 que je n'ai pas encore trouvé? Des idées à part ça?

Merci d'avance!

Répondre

1

Assurez-vous qu'ils disposent de la version correcte de .NET Framework. Si .NET 1.1 (ou même 2.0) est installé et que vous ciblez le framework 3.5, vous pouvez obtenir ce message d'erreur.

+0

Comme mentionné ci-dessus, j'ai vérifié qu'ils sont les mêmes - je suppose que j'aurais dû mentionner que les deux machines ont installé v3.5. – sam

+0

@sam: Était la seule idée que j'avais - puisque vous venez de mentionner que le cadre a été installé. Les deux sont 3.5sp1, ou juste 3.5? Si vous utilisez sp1 sur VS ou sur le framework, vous pouvez avoir des incompatibilités. problèmes aussi. –

+0

Ils sont à la fois 3.5sp1. – sam

0

Nous avons eu le même problème. Tout est lié à la politique de sécurité.

La stratégie de sécurité de vos DLL pose des problèmes lors de l'exécution de projets VSTO.

À savoir, vous devez accorder une «confiance totale» à vos assemblys. Ce que cela signifie que vous devez A) signer vos projets avec une clé et B) enregistrer vos assemblées comme ayant une confiance totale au cours du déploiement (qui peut être fait facilement avec Caspol.exe: http://msdn.microsoft.com/en-us/library/cb6t8dtz.aspx)

Il est très facile à faire. Sinon, vous pouvez rouler votre propre assemblage qui vous intégrez dans votre msi-paramètre de sécurité (c'est ce que nous avons fait)

Vérifiez ce MSDN article pour tous les détails: http://msdn.microsoft.com/en-us/library/zdc263t0.aspx

+0

Je pensais bien sûr que cela le ferait - malheureusement, pas d'amour. J'avais déjà nommé fort l'ensemble, et l'ai laissé tomber dans le GAC (qui le rend apparemment entièrement confiance automatiquement). Les pièges de sécurité ont toujours été le problème la dernière fois que j'ai essayé cela dans VS2k5. Hélas, pas cette fois. Prêt à ne plus jamais utiliser VS à ce stade ... – sam

+0

Mon expérience a été celle avec VS 2008 et VSTO 3.0, vous n'avez plus à vous soucier de la politique CAS. Cela fonctionne sans cela, mais les assemblys AddIn doivent toujours être signés. – CoderDennis

+0

ce n'est pas la réponse, c'est parce qu'il n'a pas installé VSTO 3.0 runtime. Si cela a été installé, vérifiez également que SP1 + les extensions d'exécution sont là. –

0

Installer VSTO Runtime 3.0 ensuite le mettre à jour VSTO 3.0 SP1 installer également VSTO_PTExtLibs.exe (extension PIA libs pour l'exécution) si vous faites référence à ceux-ci dans votre projet.

Questions connexes