簡體   English   中英

部署NetFwTypeLib以管理Windows防火牆

[英]Deploying NetFwTypeLib to manage the Windows Firewall

我的Windows服務需要從Windows防火牆創建/刪除某些規則。 與此I接口NetFwTypeLib<windows>\\system32\\hnetcfg.dll經由COM。 在我的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位之間的問題。

如何解決這個缺少的裝配部署問題?


編輯:這似乎是除了4.0之外的任何目標框架的VS2010問題 有人有解決方法嗎?

NetFwTypeLib對象不駐留在Windows 7旗艦版的hnetcfg.dll庫中。 相反,它駐留在%system32%\\ FirewallAPI.dll(例如c:\\ windows \\ system32 \\ FirewallAPI.dll)的FirewallAPI.dll中。

使用NetFwTypeLib; //添加引用%SystemRoot%\\ System32 \\ FirewallAPI.dll

在Visual Studio 2012中工作時,我遇到了同樣的問題。對我來說,修復是手動將interop.NetFwTypeLib.dll移動到我正在使用的目錄中。 這似乎解決了我的問題。 希望能幫助到你

多么奇怪的錯誤啊! 我能想到的最好的是不依賴於DLLSystem32版本,將其復制到您的文件夾中並從那里調用它。 根據我的知識,我不認為DLL應該與不同的位計算機沖突,但如果他們這樣做,那么只需從32位計算機獲取不同的DLL,並為x64x86單獨下載。 祝好運!

編輯:另外,我在VS2010 3.5或更低編程中遇到了一些麻煩。 嘗試獲取visual c#express 2008的版本並嘗試使用它(通常在降級.net版本時修復了很多錯誤)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM