我有一个需要强名称的代码库。
起初,我认为这将是一个简单的修复,因为我只是为我需要的 ServiceStack 程序集分配了强名称。由于 ServiceStack 内部对弱命名程序集的相互依赖,这失败了。然后,我硬着头皮使用我的 key 文件重新编译了 ServiceStack——这是不可取的,因为我没有看到可以在单个位置完成此操作的方法,并且必须将其添加到每个项目。
即便如此,由于以下原因,解决方案无法通过测试构建:
[assembly: InternalsVisibleTo("ServiceStack.Common.Tests")]
我发现自己陷入了一个恶性循环,必须调整一些东西才能使它们正常工作,并且使自己离我想保持更新的源库越来越远。
我该如何解决这个问题?我不喜欢这是怎么回事...
最佳答案
它可能无法解决您的问题,因为这不是 100% 可靠的(尽管,如果它在一台主机上工作正常,它将在所有主机上工作 - 所以如果您有良好的测试覆盖率,您至少可以确保它工作正常).
LibZ(免责声明:LibZ.Author = Me)有一个函数 sign-and-fix 可以找到未签名的程序集,自下而上遍历程序集树并将所有程序集引用替换为这个"new"签名程序集。
链接: https://libz.codeplex.com/wikipage?title=Signing%20assemblies&referringTitle=Documentation
关于c# - 如何从强命名主机使用 ServiceStack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795314/