精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

簡述 C# 中應用程序集的裝載過程

開發 后端
我們一直在處理庫和NuGet軟件包。不管是好是壞,高級.NET開發人員都需要了解.NET運行時如何加載程序集。

本文轉載自微信公眾號「DotNET技術圈」,作者michaelscode。轉載本文請聯系DotNET技術圈公眾號。

了解程序集如何在C#.NET中加載

我們一直在處理庫和NuGet軟件包。不管是好是壞,高級.NET開發人員都需要了解.NET運行時如何加載程序集。

這些庫依賴于其他流行的庫,并且有很多共享的依賴項。有了足夠大的依賴關系網絡,您最終將陷入沖突或困境。處理此類問題的最佳方法是了解該機制在內部的工作方式。

在本文中,您將看到.NET進程如何以及何時加載引用的程序集。

您將了解加載了哪個庫版本,當有多個可用版本時會發生什么,以及為什么有時由于版本沖突而出現問題。

您將看到如何調試這些類型的問題,查看程序集綁定日志(融合日志)以及一些解決沖突的方法。

程序集,模塊和引用

讓我們從圍繞.NET流程的一些基本術語開始。

一個裝配在.NET是一個DLL或EXE文件。Visual Studio解決方案中的每個項目都被編譯為一個程序集。

每個程序集可以包含多個模塊,但是實際上,我們幾乎總是在一個程序集中有一個模塊,該模塊的名稱與該程序集相同。

在Visual Studio中啟動進程或單擊F5時,將執行啟動項目程序集。除了.NET Framework或.NET Core程序集之外,它將是第一個加載的程序集。

之后,該過程將根據需要在運行時加載其他程序集。僅當需要調用該程序集的方法或使用該程序集的類型時,它才會延遲加載程序集。

這里是為一個簡單的“ Hello World” .NET Framework項目加載的模塊(出于我們所有的意圖和目的,模塊和程序集都是相同的)。MyStartup.dll是此處的啟動項目:

.NET Core項目啟動時加載的模塊

當您從另一個項目引用一個項目時,在構建時,被引用項目的DLL或EXE被復制到啟動項目的Bin文件夾中。

通常是Bin \ Debug或Bin \ Release。在運行時,當您第一次使用引用的項目中的類型時,CLR在應用程序目錄中查找具有與期望的名稱和版本相同的DLL文件。然后將程序集加載到流程中。這也稱為綁定到裝配件。

這是一個例子:

假設我們有一個名為MyStartup的簡單控制臺應用程序,它引用了另一個名為Lib1的項目。MyStartup使用Lib1程序集中的某些類。

在MyStartup中:

  1. class Program 
  2.     static void Main(string[] args) 
  3.     { 
  4.         int a = int.Parse(Console.ReadLine()); 
  5.         int b = int.Parse(Console.ReadLine()); 
  6.         Console.WriteLine("A + B = " + Add(a, b)); 
  7.     } 
  8.  
  9.     private static int Add(int a, int b) 
  10.     { 
  11.         var calculator = new Lib1.Calculator(); 
  12.         return calculator.Sum(a, b); 
  13.     } 

在Lib1中:

  1. public class Calculator 
  2.     public int Sum(int a, int b) 
  3.     { 
  4.         return a + b; 
  5.     } 

輸入Main方法時,尚未加載Lib1程序集。但是,在輸入Add方法時,CLR嘗試解析Calculator類型,找出它在引用的程序集Lib1中,然后嘗試加載該程序集。

.NET中的程序集綁定

當CLR需要加載程序集時,邏輯實際上比在Bin文件夾中查找要復雜一些。這是執行的實際邏輯(有關詳細說明,請參見Microsoft文檔[1]):

1.根據配置文件(app.config或web.config)確定需要加載的程序集的版本。該配置文件的名稱為(在生成之后) [executable name].exe.config或web.config。綁定重定向在這里發揮了作用(稍后會詳細介紹)。

2.查看程序集是否已加載。如果加載了其他版本,則將拋出FileLoadException,除非它是一個可以同時加載多個版本的強命名程序集。

3.如果它是強名稱程序集,請檢查全局程序集緩存[2](GAC)。GAC是機器上共享多個應用程序部件的地方。如果需要的話,程序集會緩存。它只能存儲強命名程序集。它可以存儲同一程序集的不同版本。您可以使用gacutil.exe[3]自己將其安裝到GAC 。

4.如果它是一個強名稱的程序集,并且配置文件包含節點,那么它將檢查那里的程序集位置。如果該節點存在并且找不到程序集,FileNotFoundException則將引發a。

5.根據啟發式算法檢查程序集DLL或EXE。此過程稱為“探測”。算法如下:

  • 檢查文件夾[application base] / [assembly name].dll。應用程序庫是應用程序可執行文件所在的位置。通常,您的Bin \ Debug或Bin \ Release文件夾。
  • 檢查一下 [application base] / [assembly name] / [assembly name].dll
  • 如果為引用的程序集指定了區域性信息,則僅檢查以下目錄: [application base] / [culture] / [assembly name].dll [application base] / [culture] / [assembly name] / [assembly name].dll
  • 如果該 節點存在于配置文件中,則它將在該privatePath節點的屬性指定的文件夾中查找程序集。

他們為什么要使所有事情變得如此困難,對嗎?

實際上,這種邏輯非常有助于我們發展,而不會使事情變得困難。它的存在是為了實現一些重要目標:

  • 為了確保您引用的是特定的程序集和版本,則將加載該確切版本。否則,將引發異常。而且,如果您知道自己在做什么,則可以在配置文件中指定覆蓋規則(綁定重定向)。
  • 為了靈活地在您要加載的程序集中進行。例如,如果要根據不同的區域性(語言)加載不同的程序集,則可以輕松地做到這一點。或者,如果您要根據客戶配置加載不同的程序集,那也可以。
  • 為了安全起見,我們使用了全稱的程序集。他們確保您不能“偽造”程序集。例如,如果某個進程希望加載Lib1 v4.5,那么您將無法加載具有相同名稱和版本的惡意軟件程序集。加載時會引發異常。這就是為什么在計算機上所有進程都共享的GAC只接受強名稱程序集的原因。

在大多數應用程序中,您無需記住程序集加載和探測的復雜邏輯。您無需了解或考慮GAC,全名程序集或操作配置文件。

您幾乎根本不需要考慮庫的版本,因為可能的沖突通過稱為“綁定重定向”的機制自動解決了。

綁定重定向

如果有一件事對于了解這筆交易非常重要,那就是綁定重定向。能夠告訴運行時它將實際加載哪個版本,而不管其引用的版本如何。

這是一個示例:您的流程有兩個項目(模塊):項目A和項目B。項目A引用log4net.dll v1.1,項目B引用log4net.dll v1.2。兩個log4net DLL文件都復制到輸出文件夾,但是只能有一個log4net.dll文件。

假設復制到輸出文件夾的文件是log4net.dll v1.2。假設到達的第一個代碼是Project A中的代碼,該代碼引用了log4net v1.1。運行時將在輸出文件夾中查找,找到不同版本的log4net,并失敗FileLoadException。

還有另一種可能。假設首先執行了項目B中的代碼,并且在嘗試使用log4net時,它成功加載了log4net.dll v1.2。片刻之后,Project A中的代碼將嘗試使用log4net v1.1,請參見該程序集已經加載了其他版本,并拋出FileLoadException。

如果您知道哪個log4net版本將在輸出文件夾中,在這種情況下可以做的就是告訴運行時應該使用哪個版本。只需app.config在該runtime部分的文件中添加以下幾行:

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <configuration> 
  3.   ... 
  4.   <runtime> 
  5.     ... 
  6.     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
  7.       <dependentAssembly> 
  8.         <assemblyIdentity name="log4net"  
  9.                           publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> 
  10.         <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="1.2.0" /> 
  11.       </dependentAssembly> 
  12.     </assemblyBinding> 
  13.   </runtime> 
  14.   ... 
  15. </configuration> 

 這意味著,只要運行時想綁定到版本范圍為0.0.0.0to的程序集log4net 5.0.0.0,它就會嘗試綁定到version 1.2.0。

實際上,您不必手動添加這些重定向,因為它們是自動添加的。如果轉到啟動項目的“屬性”,則會看到以下設置:

圖片-20200711101325128

默認情況下選中此選項。它會自動檢測版本沖突并在.config文件中生成綁定重定向。

當問題開始發生時

乍一看,綁定重定向可能看起來像是對所有問題的答案,但事實并非如此。使用綁定重定向時,基本上使用的庫版本與預期不同。如果刪除方法怎么辦?或方法的簽名已更改?在這種情況下,調用該方法時,程序將因運行時錯誤而失敗。畢竟,創建版本是有原因的。

如果確實存在此類問題,則有解決方法。查看我的文章:如何解決.NET引用和NuGet軟件包版本沖突[4]。

故障排除

當您有一個FileLoadException或類似的東西時,我建議做的第一件事是查看Visual Studio中的“模塊”窗口。在這里,您將看到所有已加載的模塊,并確定您要加載的程序集是否已加載,使用哪個版本以及從哪個路徑加載。

除此之外,您還可以查看程序集綁定日志,也稱為融合日志。這些日志將顯示在程序集綁定嘗試過程中到底發生了什么。您將看到運行時查找的程序集版本,運行時查找的文件夾以及故障點。

有幾種查看融合日志的方法。首先,您必須啟用它們,因為默認情況下它們是禁用的。您可以通過將HKLM\Software\Microsoft\Fusion\ForceLog值設置為1并將HKLM\Software\Microsoft\Fusion\LogPath值設置為來在注冊表中手動啟用它們C:\FusionLogs。日志將自動出現。或者,您可以使用Fusion Log Viewer,該軟件應以方式安裝在PC上fuslogvw.exe。我建議使用“一切窗口”搜索之[5]類的程序來查找它。確保以管理員權限運行融合日志查看器,以便能夠啟用和禁用日志。最近更流行的一種更現代的工具是Fusion ++[6]。

邊注

也許您不需要,但是我以前討厭不得不處理這類問題。例如一個邏輯上的問題,讓我構建一些東西,甚至解決一個生產錯誤,但其他問題都好說,唯獨這個……。

在這件事上別無選擇,我不得不艱難地學習程序集綁定的內部工作。我發現,就像其他所有內容一樣,一旦您理解了某些內容,它就會變得不那么可怕,甚至變得不再那么有趣了。

因此,我希望本文對您有意義,并會在我走過的道路上為您提供快速幫助。

References

[1] Microsoft文檔: https://docs.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies

[2] 全局程序集緩存: https://docs.microsoft.com/en-us/dotnet/framework/app-domains/gac

[3] gacutil.exe: https://docs.microsoft.com/en-us/dotnet/framework/tools/gacutil-exe-gac-tool

[4] 如何解決.NET引用和NuGet軟件包版本沖突: https://michaelscodingspot.com/how-to-resolve-net-reference-and-nuget-package-version-conflicts/

[5] 一切窗口”搜索之: https://www.voidtools.com/

[6] Fusion ++: https://github.com/awaescher/Fusion/

 

責任編輯:武曉燕 來源: DotNET技術圈
相關推薦

2009-08-24 09:25:18

Visual C# ..NET應用程序

2009-08-24 14:19:27

C# Windows應

2009-08-06 10:27:08

C#應用程序域

2009-08-28 16:43:08

AutoCAD托管C#

2009-08-24 13:30:50

C# Windows

2009-01-19 11:07:42

C#Web.NET

2009-08-24 16:02:10

C# Windows應

2009-08-24 13:40:58

C# Windows

2009-08-25 09:39:21

創建C# Window

2009-09-03 17:36:13

C#創建Web應用程序

2009-08-19 15:31:32

C#控制臺應用程序

2009-08-19 17:11:49

C#程序集

2010-02-22 14:54:47

Python應用程序

2010-11-03 15:10:04

SilverlightSilverlightWindows Pho

2009-07-30 18:50:32

C#發送消息C#應用程序

2009-09-09 14:20:18

C# XML解析XML解析方法

2024-04-28 10:58:00

C#編程窗口關閉事件

2009-04-01 14:33:33

2010-03-01 10:30:29

Python應用程序

2011-07-28 15:47:20

IOS 程序 測試
點贊
收藏

51CTO技術棧公眾號

中文字幕在线观看免费| 国产欧美精品一二三| 黄色小视频在线免费观看| 日本不卡的三区四区五区| 色噜噜狠狠狠综合曰曰曰| 国产又黄又嫩又滑又白| 韩日精品一区二区| 亚洲精品免费在线| 女人一区二区三区| 99在线观看免费| 亚洲一区网站| 久久久精品影院| 大又大又粗又硬又爽少妇毛片| 婷婷久久免费视频| 欧美日韩一区二区在线播放| 手机看片福利永久国产日韩| 婷婷五月综合激情| 国产美女娇喘av呻吟久久| 欧美诱惑福利视频| 欧美精品成人久久| 成人3d动漫在线观看| 亚洲成人aaa| 亚洲女人在线观看| 欧美极品在线| 日本道在线观看一区二区| 菠萝蜜视频在线观看入口| a√资源在线| 91看片淫黄大片一级在线观看| 91免费在线观看网站| 在线播放精品视频| 久久精品女人天堂| 97视频在线免费观看| www欧美com| 日韩毛片视频| 亚洲色图17p| 国产激情视频网站| 粉嫩精品导航导航| 欧美成人aa大片| 不用播放器的免费av| 91在线成人| 在线欧美日韩国产| 妞干网在线免费视频| 国产不卡123| 亚洲成av人片在线观看无码| 超碰超碰超碰超碰超碰| 精品视频在线一区二区| 国产精品视频观看| 午夜欧美一区二区三区免费观看| 欧美日韩国产综合视频| 91一区一区三区| 国产日产精品一区二区三区四区| 亚洲国产精品久久久久久久| 国产成人免费视频一区| 91免费看网站| 欧美婷婷精品激情| 亚洲自拍av在线| 校园春色 亚洲| 一区二区三区在线观看免费| 久久精品国产精品| 黑人狂躁日本娇小| 欧美一区高清| 欧美高清视频免费观看| 国产一卡二卡在线播放| 亚洲大片在线| 18久久久久久| 成人毛片一区二区三区| 美女视频一区二区三区| 成人福利网站在线观看11| 国产熟女精品视频| 粉嫩久久99精品久久久久久夜 | 欧美丰满艳妇bbwbbw| 这里只有精品在线| 久久久久久com| 日韩毛片在线视频| 久久中文字幕一区二区三区| 国产精品旅馆在线| 国产丝袜视频在线观看| 成人综合婷婷国产精品久久蜜臀 | 911亚洲精选| 色愁久久久久久| 色偷偷亚洲男人天堂| 黑人巨大精品一区二区在线| 亚洲性人人天天夜夜摸| 日本成人黄色片| 伊人网站在线观看| 国产大陆精品国产| 免费观看成人高| 美女写真理伦片在线看| 亚洲视频一区二区在线| 免费国产黄色网址| 久久福利在线| 亚洲精品在线观| 国产真人真事毛片视频| 欧美日韩网址| 国产精品视频一区国模私拍| 国产高清在线免费| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲精蜜桃久在线| 美女精品导航| 欧美日韩一级大片网址| 日本50路肥熟bbw| 国产欧美日韩精品一区二区三区| 欧美日韩国产999| 不卡av电影在线| 成人性生交大片| 视频一区视频二区视频三区高| 欧美高清另类hdvideosexjaⅴ| 色久综合一二码| 久久久久久久穴| 亚洲h色精品| 日韩av免费看网站| 亚洲产国偷v产偷v自拍涩爱| 国产日韩精品一区二区三区 | 午夜在线视频一区二区区别| 91在线观看免费网站| 黄色在线小视频| 天天影视色香欲综合网老头| 五月天开心婷婷| 国产精品一区高清| 2023亚洲男人天堂| www.色呦呦| 成人欧美一区二区三区1314| 日本三区在线观看| 另类春色校园亚洲| 欧美国产第二页| 国产乱码精品一区二区| 亚洲国产高清在线| 欧美日韩亚洲一| 超碰97久久| 色与欲影视天天看综合网| 中文字幕在线观看欧美| 国产亚洲一区二区三区四区| 欧美日韩亚洲一| 九色丨蝌蚪丨成人| 久久久久亚洲精品成人网小说| 国产美女免费看| 亚洲欧洲无码一区二区三区| 中国黄色片免费看| 精品国产99| 国产精品都在这里| 国产视频精品久久| 欧美亚洲综合另类| 久久久免费看片| 免费成人你懂的| 相泽南亚洲一区二区在线播放| a一区二区三区| 亚洲人成网站色ww在线| 中文字幕一区在线播放| 久久午夜羞羞影院免费观看| 91好吊色国产欧美日韩在线| 欧美挤奶吃奶水xxxxx| 97视频在线免费观看| 午夜国产在线观看| 日韩欧美在线免费| av电影网站在线观看| 日韩高清不卡一区二区| 视频一区二区在线观看| 国产国产一区| 久久精品影视伊人网| 国产黄色av片| 亚洲成在线观看| 色噜噜在线观看| 日韩一区精品字幕| 一区二区三区四区视频在线观看| 啪啪av大全导航福利综合导航| www.xxxx欧美| 国产高清在线观看视频| 午夜视频在线观看一区二区三区| 国产亚洲色婷婷久久99精品91| 久久久久国产一区二区| 天堂√在线观看一区二区| 久久av影院| 久久久免费精品| 久蕉依人在线视频| 欧美精品777| 精品在线免费观看视频| 久久综合五月天婷婷伊人| www.超碰com| 一区二区三区毛片免费| 国产精品日韩一区二区| 日韩国产网站| 米奇精品一区二区三区在线观看| 天天射,天天干| 日韩欧美在线中文字幕| 久久噜噜色综合一区二区| 大陆成人av片| 国产精品一区二区小说| 亚洲激情一区| 天堂va久久久噜噜噜久久va| 成人动态视频| 国产精品男女猛烈高潮激情| 日本在线视频网址| 亚洲视频第一页| www.五月婷| 在线精品国精品国产尤物884a| 全程偷拍露脸中年夫妇| 久久久综合激的五月天| 日本在线观看视频一区| 免费永久网站黄欧美| 51xx午夜影福利| 国产成人三级| 成人在线视频电影| 欧美大陆国产| 欧美重口另类videos人妖| 超碰最新在线| 国产亚洲精品综合一区91| 成人免费视频国产免费麻豆| 欧美午夜精品一区二区蜜桃| 日本少妇激情舌吻| 亚洲欧洲一区二区在线播放| 91网站免费视频| 不卡的看片网站| 三级黄色片播放| 日产国产高清一区二区三区| 成 年 人 黄 色 大 片大 全| 亚洲精品二区三区| 日韩欧美亚洲日产国| 欧美a大片欧美片| 91精品国产高清久久久久久91裸体| 456成人影院在线观看| 97精品伊人久久久大香线蕉 | 97婷婷涩涩精品一区| av在线免费网址| 中文字幕亚洲一区二区三区五十路| 五月婷婷伊人网| 亚洲第一区第一页| 午夜精品一二三区| 日韩一区二区在线看| 亚洲天堂中文在线| 欧美性极品少妇| 日本视频网站在线观看| 精品久久久久久久久久久久久久| 久久机热这里只有精品| 亚洲欧美另类在线| 青花影视在线观看免费高清| 国产精品家庭影院| 91社区视频在线观看| 国产亚洲精品免费| 国产在线观看h| 国产欧美日产一区| 免费黄色片网站| 日本一区二区三区视频视频| 国产sm调教视频| 中文字幕不卡三区| 天堂网中文在线观看| 国产精品热久久久久夜色精品三区 | 欧美亚韩一区二区三区| 亚洲成精国产精品女| 国产亚洲精品av| 亚洲国产欧美日韩另类综合| 国产真实乱人偷精品视频| 一级精品视频在线观看宜春院 | 欧美日韩在线播| 一级全黄裸体免费视频| 欧美日韩在线观看一区二区 | 国产高清在线观看免费不卡| 在线观看网站黄| 国产成人av在线影院| 秘密基地免费观看完整版中文 | 成人影院在线视频| 欧美一级电影久久| 日韩制服一区| 亚洲在线视频观看| 欧美a大片欧美片| 日韩国产美国| 中国精品18videos性欧美| 色爽爽爽爽爽爽爽爽| 精品二区久久| 成人久久久久久久久| 免费美女久久99| 日本在线观看视频一区| 成人av在线一区二区| 免费毛片视频网站| 国产精品久久久久久久久快鸭| 一区视频免费观看 | 亚洲自拍偷拍另类| 日韩午夜在线影院| 欧美zozo| 萌白酱国产一区二区| 伊人久久综合一区二区| 国产啪精品视频| 成人福利一区| 午夜精品一区二区三区在线观看 | 国产国语亲子伦亲子| 精品亚洲一区二区三区在线观看 | 亚洲国产美女搞黄色| 亚洲欧美日韩激情| 欧美一区二区三区在线观看视频| 全国男人的天堂网| 色多多国产成人永久免费网站 | 午夜在线观看视频| 国内精品小视频| 韩国精品视频在线观看| 国产精品9999久久久久仙踪林| 国产一区不卡| 国产成人在线小视频| 日韩精品一二三区| 无码av免费精品一区二区三区| 国产色一区二区| 国产精品suv一区二区| 欧美日韩一本到| 五月天婷婷社区| 草民午夜欧美限制a级福利片| 欧美aa视频| 国产精品久久久久久久久久久久冷 | 亚洲大胆人体av| 欧美成年黄网站色视频| 欧美中文在线观看| 成人av综合网| 日韩视频一二三| 美女视频免费一区| 国产又爽又黄无码无遮挡在线观看| 一区二区三区中文字幕电影| 波多野结衣二区三区| 日韩精品免费在线视频观看| 91香蕉在线观看| 91精品国产自产在线老师啪| 国产成人三级| 欧美黄网站在线观看| 成人免费视频一区| 欧美又粗又大又长| 欧美一区二区三区免费大片 | 亚洲一区二区偷拍精品| 91精品国产乱码久久| 一本色道久久88综合日韩精品| 极品视频在线| 国产一区精品在线| 国模一区二区三区| 潘金莲一级淫片aaaaa| 18涩涩午夜精品.www| 中文字幕永久在线视频| 亚洲欧美日韩国产精品| 桃色av一区二区| 精品日本一区二区| 一本久道综合久久精品| 国产精品久久久久久亚洲色| 亚洲一区二区三区四区在线观看| 国产www免费观看| 另类色图亚洲色图| 久久在线观看| 国产精品视频一二三四区| 国产一区二区电影| 免费视频一二三区| 欧美成人bangbros| 999av小视频在线| 精品免费国产| 久久精品首页| 日本精品在线观看视频| 欧美性猛交xxxxxxxx| 日本不卡在线| 亚洲一区中文字幕在线观看| 欧美精品福利| 国产精品久久久久久在线观看| 五月天婷婷综合| 日本大臀精品| 国产精品美乳在线观看| 欧美国产美女| 下面一进一出好爽视频| 亚洲高清三级视频| 深夜福利视频在线免费观看| 国产成人精品在线| 91久久夜色精品国产按摩| 丰满少妇一区二区三区专区| 亚洲午夜久久久久久久久电影院| 婷婷开心激情网| 国产精品久久久av| 91精品福利| 艳妇乳肉亭妇荡乳av| 色婷婷综合久久久久中文一区二区 | **精品中文字幕一区二区三区| 欧洲金发美女大战黑人| 成人免费毛片片v| 亚洲国产精品无码久久久| 久久精品国产亚洲精品| 国产精品调教| 国产性生交xxxxx免费| 国产精品久久久久久久浪潮网站| 国产手机视频在线| 日韩av高清不卡| 国产韩日影视精品| 99久久免费看精品国产一区| 色婷婷av一区二区| 1stkiss在线漫画| 欧美精品久久久| 国产一区二区伦理片| 精品免费囯产一区二区三区| 深夜福利91大全| 久久男人av| 中文字幕亚洲影院| 黑人巨大精品欧美一区二区免费| 日本免费在线视频| 精品久久蜜桃| 黄色日韩网站视频| 亚洲另类在线观看| 欧美成人激情视频| 狠狠做六月爱婷婷综合aⅴ| 337p日本欧洲亚洲大胆张筱雨| 91国偷自产一区二区开放时间| 最新黄网在线观看| 日本一区视频在线观看|