我们的应用程序使用大量自定义和第三方库,每个应用程序都有对这些程序集的私有引用,这意味着每个应用程序的bin文件夹中都有所引用的程序集的副本。例如,Application A 引用 log4net.dll、CustomLibA.dll 和 CustomLibB.dll,而 Application B 也引用 log4net.dll、CustomLibA.dll 和 CustomLibB.dll,这些程序集存储在以下结构中。
D:\Inetpub\wwwroot\ApplicationA\bin D:\Inetpub\wwwroot\ApplicationB\bin
我有以下问题:
1. 我认为这会创建性能问题,因为应用程序数量和引用数量增加后,每个应用程序都将加载所有这些程序集,这将导致虚拟地址碎片化。我的假设正确吗?
2. 我可以组织应用程序,使得所有这些应用程序都引用来自公共文件夹的程序集,并且不在 bin 文件夹中具有私有副本吗?例如,程序集 log4net.dll、CustomLibA.dll 和 CustomLibB.dll 存储在以下文件夹中:
D:\Inetpub\wwwroot\Apps\Common
并由以下方式组织的应用程序进行引用:
D:\Inetpub\wwwroot\Apps\ApplicationA D:\Inetpub\wwwroot\Apps\ApplicationB
这些应用程序的 bin 文件夹中将没有公共程序集。
这样行吗?我尝试通过将 copy local 设置为 false 来实现这一点,但我收到“无法加载文件或程序集 xxxx”的错误。
我知道我可以使用 GAC,但由于我们的部署过程的性质,我想避免对某些自定义构建的库使用 GAC。
谢谢, Hari Krishnan。
D:\Inetpub\wwwroot\ApplicationA\bin D:\Inetpub\wwwroot\ApplicationB\bin
我有以下问题:
1. 我认为这会创建性能问题,因为应用程序数量和引用数量增加后,每个应用程序都将加载所有这些程序集,这将导致虚拟地址碎片化。我的假设正确吗?
2. 我可以组织应用程序,使得所有这些应用程序都引用来自公共文件夹的程序集,并且不在 bin 文件夹中具有私有副本吗?例如,程序集 log4net.dll、CustomLibA.dll 和 CustomLibB.dll 存储在以下文件夹中:
D:\Inetpub\wwwroot\Apps\Common
并由以下方式组织的应用程序进行引用:
D:\Inetpub\wwwroot\Apps\ApplicationA D:\Inetpub\wwwroot\Apps\ApplicationB
这些应用程序的 bin 文件夹中将没有公共程序集。
这样行吗?我尝试通过将 copy local 设置为 false 来实现这一点,但我收到“无法加载文件或程序集 xxxx”的错误。
我知道我可以使用 GAC,但由于我们的部署过程的性质,我想避免对某些自定义构建的库使用 GAC。
谢谢, Hari Krishnan。