C# DLL地狱问题:指定强名称
我有两个dll,app1.dll和app2.dll,它们使用相同的第三个dll,util.dll,当为特定应用程序构建时,它们的行为可能略有不同 我希望实现app1.dll和app2.dll在它们使用的util.dll版本方面是隔离的。在MSDN上,我了解到为util.dll指定一个强名称是解决方案,即此强名称包含dll的名称和版本以及签名导致的指纹 我目前正在构建util.dllC# DLL地狱问题:指定强名称,c#,.net,visual-studio-2010,dll,dllregistration,C#,.net,Visual Studio 2010,Dll,Dllregistration,我有两个dll,app1.dll和app2.dll,它们使用相同的第三个dll,util.dll,当为特定应用程序构建时,它们的行为可能略有不同 我希望实现app1.dll和app2.dll在它们使用的util.dll版本方面是隔离的。在MSDN上,我了解到为util.dll指定一个强名称是解决方案,即此强名称包含dll的名称和版本以及签名导致的指纹 我目前正在构建util.dll 对于具有KeyFileApp1.snk和版本1.0.0.1的app1 对于具有KeyFileApp2.snk和版
- 对于具有KeyFileApp1.snk和版本1.0.0.1的app1
- 对于具有KeyFileApp2.snk和版本1.0.0.2的app2
- 强名称是“病毒性的”,因为您不能让强名称程序集依赖于没有强名称的程序集。要小心,因为您的程序集需要有很多强签名(这本身并不是一件坏事)和良好的版本控制计划
- 最终,您可能会将同一程序集的多个版本加载到流程中—为此做好准备或使用publisher策略将所有版本映射到最新版本