我有一个包含许多子项目的大项目。 (如图所示)
WebSiteA
和WebSiteB
都引用了两个 DLL项目。
然而,当我更改dll时 - 我需要在每个网站中更新每个 bin。
我不想那样。
我知道我可以把它们放进GAC
但是我被告知不要(不要问我为什么请。)
是否有任何解决方案:
所以当我更新任何dll时 - 我只把它放在一个地方? (所以dll不会出现在每个站点的bin
)
答案 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。这是由于网站如何保护并彼此分离。