Le déploiement de NetFwTypeLib pour gérer le Pare-feu Windows
Mon service Windows a besoin pour créer/supprimer certaines règles du pare-feu Windows. Pour cela, je l'interface avec NetFwTypeLib
dans <windows>\system32\hnetcfg.dll
via COM. Il fonctionne très bien sur mon 64 bits de Windows 7 machine, mais après le test d'une version 64 bits de Windows 7 machine lance le message d'erreur suivant:
Service cannot be started. System.IO.FileNotFoundException:
Could not load file or assembly 'Interop.NetFwTypeLib,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null' or one of its dependencies.
The system cannot find the file specified.
J'ai le sentiment que si je intégrer et installer l'ensemble de ma demande, j'aurais des problèmes avec les différentes versions de Windows et entre 32 bits et 64 bits.
Comment puis-je résoudre ce manque assemblée problème de déploiement?
Edit: Ce qui semble être un VS2010 problème pour n'importe quel framework cible sauf 4.0. Quelqu'un aurait-il une solution pour cela?
OriginalL'auteur Petrus Theron | 2010-11-28
Vous devez vous connecter pour publier un commentaire.
NetFwTypeLib objet ne réside pas dans hnetcfg.dll bibliothèque sur Windows 7 Ultimate. Plutôt, il réside dans FirewallAPI.dll à l' %system32%\FirewallAPI.dll (par exemple c:\windows\system32\FirewallAPI.dll).
à l'aide de NetFwTypeLib; //
Ajouter la référence
%SystemRoot%\System32\FirewallAPI.dll
OriginalL'auteur Markus Hooge
Ce une erreur bizarre! Le mieux je pense est de ne pas se fier à la
System32
version de laDLL
, le copier dans votre dossier et de l'appeler à partir de là. De mes connaissances, je ne pense pas que la DLL doit entrer en conflit avec les différents bits des ordinateurs, mais s'ils le font juste d'obtenir une autre DLL à partir d'un ordinateur 32 bits et ont des téléchargements séparés pour lesx64
etx86
. Bonne chance!EDIT: Aussi, j'ai eu quelques ennuis avec la programmation en 3,5 ou plus bas dans
VS2010
. Essayez d'obtenir une version de visual c# express 2008 et essayer avec qui (généralement de résoudre un grand nombre d'erreurs avec la rétrogradation.net
versions)OriginalL'auteur Evan
J'ai eu un problème avec ce même dll lorsque l'on travaille dans Visual Studio 2012.
Pour moi la solution était de déplacer manuellement le
interop.NetFwTypeLib.dll
dans le répertoire que je travaille à partir de. Cela semble résoudre le problème pour moi. Espérons que cela aideOriginalL'auteur wjhguitarman