共享程序集在一个位置?

时间:2012-10-30 08:19:14

标签: c# asp.net .net .net-4.0 shared-libraries

我有一个包含许多子项目的大项目。 (如图所示)

WebSiteAWebSiteB都引用了两个 DLL项目。

然而,当我更改dll时 - 我需要在每个网站中更新每个 bin。

我不想那样。

我知道我可以把它们放进GAC但是我被告知不要(不要问我为什么请。)

enter image description here

是否有任何解决方案:

enter image description here

所以当我更新任何dll时 - 我只把它放在一个地方? (所以dll不会出现在每个站点的bin

2 个答案:

答案 0 :(得分:2)

您可以使用.refresh文件引用制作技巧但未在实时服务器上进行测试

首先将您的公共dll放在公共目录中 在每个bin上放置第二个,将*.refresh文件与dll放在一起,如果找到新版本,则说明在哪里更新dll。

所以你在Bins里面有这样的东西:

mySuperModule.dll
mySuperModule.dll.refresh

并在 mySuperModule.dll.refresh 内部,需要检查更新的模块的位置 - >

d:\Dlls\mySuperModule.dll

其中d:\dlls是搜索新更新的dll的常见位置。

最后,您只更新公共目录dll,然后离开项目自动完成剩下的工作。

答案 1 :(得分:0)

GAC的重点是提供该功能,如果您不使用它,则无法以您希望的方式共享DLL。这是由于网站如何保护并彼此分离。