部署NetFwTypeLib以管理Windows防火墙
我的Windows服务需要从Windows防火墙创建/删除某些规则。 为此,我通过COM与system32hnetcfg.dll
接口。 它在我的64位Windows 7计算机上运行良好 ,但在另一台64位Windows 7计算机上进行测试会引发以下错误:
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.
我有一种感觉,如果我使用我的应用程序嵌入并安装程序集,我会遇到不同版本的Windows以及32位和64位之间的问题。
如何解决这个缺少的assembly部署问题?
编辑:这似乎是除了4.0之外的任何目标框架的VS2010问题 。 有人有解决方法吗?
NetFwTypeLib对象不驻留在Windows 7旗舰版的hnetcfg.dll库中。 相反,它位于%system32% FirewallAPI.dll(例如c: windows system32 FirewallAPI.dll)的FirewallAPI.dll中。
使用NetFwTypeLib; //添加引用%SystemRoot% System32 FirewallAPI.dll
多么奇怪的错误! 我能想到的最好的是不依赖于DLL
的System32
版本,将其复制到您的文件夹中并从那里调用它。 据我所知,我不认为DLL应该与不同的位计算机冲突,但如果他们这样做,那么只需从32位计算机获取不同的DLL,并为x64
和x86
单独下载。 祝好运!
编辑:另外,我在VS2010
3.5或更低编程中遇到了一些麻烦。 尝试获取visual c#express 2008的版本并尝试使用它(通常在降级.net
版本时修复了很多错误)
在Visual Studio 2012中工作时,我遇到了同样的问题。对我来说,修复是手动将interop.NetFwTypeLib.dll
移动到我正在使用的目录中。 这似乎解决了我的问题。 希望能帮助到你
上述就是C#学习教程:部署NetFwTypeLib以管理Windows防火墙分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1042413.html