我有一个需要强名称的代码库。
起初,我认为这将是一个简单的修复,因为我只是为我需要的ServiceStack程序集分配了强名称。由于ServiceStack中弱命名程序集之间存在依赖关系,因此失败。然后,我咬了一下子弹并使用我的密钥文件重新编译了ServiceStack - 这是不可取的,因为我没有看到可以在一个位置完成此操作并且必须将其添加到每个项目的方法。
即便如此,由于这个问题,解决方案无法通过测试构建:
[assembly: InternalsVisibleTo("ServiceStack.Common.Tests")]
我发现自己处于一个不断调整的事情,以使他们工作,并使我自己越来越远离我想要不断更新的源库。
我该如何处理这个问题?我不喜欢这发生的地方......
答案 0 :(得分:1)
它可能无法解决您的问题,因为这不是100%可靠(但是,如果它在一台主机上运行正常,它将适用于所有主机 - 所以如果你有良好的测试覆盖率,你至少可以确保它工作正常)。
LibZ(免责声明:LibZ.Author = Me)有一个函数sign-and-fix,用于查找未签名的程序集,自下而上遍历程序集树并替换对这个“新”签名程序集的所有程序集引用。
链接: https://libz.codeplex.com/wikipage?title=Signing%20assemblies&referringTitle=Documentation
答案 1 :(得分:1)