是否会同时加载两个相同的 dll(如果位于不同的位置并被两个不同的应用程序引用)

Will two identical dll's be both loaded (if located in different locations and referenced by two different applications)

假设我在 IIS 上托管了两个 ASP.NET 网站。两者在 bin 文件夹中都有相同的 DLL 程序集“1.dll”。 “1.dll”这两个 DLL 是否都由 CLR 加载,或者它是否足够智能以加载它一次然后检查是否已在其他地方加载所需的 version/name ?

如果不需要特定版本就引用“1.dll”会有什么不同吗?

两个站点使用相同或不同的应用程序池会有不同吗?

程序集被加载到应用程序域中,这是进程中的逻辑边界。因此,如果您的 Web 应用程序 运行 在不同的应用程序池中(我的意思是不同的工作进程)- 是的,它将再次加载。

Will it make difference if "1.dll" is referenced without requiring specific version? No

Will it make difference if both sites are using same or different application pools? If application pool is same, then it might use shared app domain(though am not very sure)

更新: 回答你的第二个问题,我在同一个池中的两个网站 运行 的 Process Explorer 中检查了加载的程序集,不同的应用程序域有自己的已加载的程序集实例。