部署NetFwTypeLib来管理Windows防火墙我的Windows服务需要从Windows防火墙创建/删除某些规则。为此,我通过COM与system32hnetcfg.dll进行交互。它在我的64位Windows7机器上运行良好,但在另一台64位Windows7机器上测试它会抛出以下错误:服务无法启动。System.IO.FileNotFoundException:无法加载文件或程序集“Interop.NetFwTypeLib,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。我有一种感觉,如果我使用我的应用程序来嵌入和安装程序集,我会在不同版本的Windows和32位到64位之间出现问题。如何解决这个缺少的程序集部署问题?编辑:对于4.0以外的任何目标框架,这似乎是一个VS2010问题。有人有解决方法吗?NetFwTypeLib对象不驻留在Windows7Ultimate上的hnetcfg.dll库中。相反,它位于%system32%FirewallAPI.dll的FirewallAPI.dll中(例如c:\windows\system32\FirewallAPI.dll)。使用NetFwTypeLib;//添加对%SystemRoot%System32FirewallAPI.dll的引用好奇怪的错误!我能想到的最好的方法是不依赖DLL的System32版本,将其复制到您的文件夹中并从那里调用它。据我所知,我认为DLL不应该与不同的位计算机发生冲突,但如果发生冲突,则只需从32位计算机获取不同的DLL,并分别下载x64和x86。祝你好运!编辑:此外,我在VS20103.5或更低版本中编程时遇到了一些问题。尝试获取visualc#express2008版本并尝试使用它(通常降级.net版本修复了很多错误)我在VisualStudio2012中工作时遇到了同样的问题。对我来说,修复是手动移动互操作.NetFwTypeLib.dll到我工作的目录中。这似乎解决了我的问题。我希望它可以帮助你。以上就是C#学习教程:DeployingNetFwTypeLibtomanageallthecontentsharedbyWindowsFirewall。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,并不代表侵权,如有侵权,请点击右边联系管理员删除。如需转载请注明出处:
