8

我有一个需要强名称的代码库。

起初,我认为这将是一个简单的修复,因为我只是为我需要的 ServiceStack 程序集分配了强名称。由于 ServiceStack 在弱命名程序集上的相互依赖关系,这失败了。然后,我咬紧牙关,使用我的密钥文件重新编译了 ServiceStack——这是不可取的,因为我没有看到可以在单个位置完成此操作的方法,并且必须将其添加到每个项目中。

即便如此,由于以下原因,该解决方案仍无法通过测试构建:

[assembly: InternalsVisibleTo("ServiceStack.Common.Tests")]

我发现自己陷入了一个恶性循环,不得不调整一些东西才能让它们工作,并且让自己越来越远离我想要更新的源库。

我应该如何解决这个问题?我不喜欢这要去哪里...

4

2 回答 2

1

它可能无法解决您的问题,因为这不是 100% 可靠的(尽管,如果它在一台主机上运行良好,它将在所有主机上运行 - 所以如果您有良好的测试覆盖率,您至少可以确保它运行良好)。

LibZ(免责声明:LibZ.Author = Me)有一个签名和修复函数,它可以找到未签名的程序集,自下而上遍历程序集树并将所有程序集引用替换为这个“新”签名程序集。

链接: https ://libz.codeplex.com/wikipage?title=Signing%20assemblies&referringTitle=Documentation

于 2013-12-22T00:51:09.360 回答
1

您可以仅使用 nuget 中可用的签名版本吗?ServiceStack.Signed

于 2017-03-03T15:47:35.467 回答