.net - 有没有一种简单的方法可以在 VS 2010 中签署 C++ CLI 程序集?

标签 .net visual-studio-2010 c++-cli assembly-signing

现在我正在设置 Linker/Advanced/KeyFile 选项。

我收到“mt.exe:一般警告 810100b3:是一个强名称签名的程序集,嵌入 list 会使签名无效。您需要重新签署此文件以使其成为有效的程序集。 “。

从网上阅读,听起来我必须设置延迟签名选项,下载 SDK,然后将 sn.exe 作为构建后事件运行。在 VS2010 中肯定有更简单的方法来完成这种常见操作吗?

最佳答案

这里有相当多的跛行,这以前从未奏效过。它在 VS2010 中得到了“修复”,mt.exe 现在会生成一个警告,而不是让它默默地出错。这不是真正的修复,也没有明显的修复,链接器不能仅嵌入签名并仍然允许 mt.exe 之后运行。

解决方案是使用构建后事件重新签署程序集。让它看起来像这样:

Command = sn -Ra "$(TargetPath)" $(ProjectName).snk

如果您还没有 key 文件,则需要自己创建 .snk 文件,并从 Visual Studio 命令提示符运行 sn.exe。例如:

cd \whereTheProjectIsLocated
sn.exe -k MyProject.snk

或者从容器中提取它或使用您指定的 key 文件。延迟签名只需使用正确的命令行选项运行 sn.exe 即可。

关于.net - 有没有一种简单的方法可以在 VS 2010 中签署 C++ CLI 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656412/

相关文章:

wpf - Lync 2010 插件 - 具有提升权限的 Silverlight WPF

android - .NET 中的序列化 - Android 中的反序列化

c# - virtual、abstract、override 关键字的排序

c++ - 有没有办法在 Visual C++ 调试后返回以前的状态?

visual-studio-2010 - 如何为 VS 2010 配置 Pro Power Tools 扩展

c - 回调分配期间出现“无法从...转换”错误(从 C 迁移代码)

.net - 派生自 C++ 中的 .NET 抽象类,System::IO::TextWriter

.net - TLS 1.2 在带有 .NET 4.7 的 Windows 10 中默认不启用

c# - 如何获取已安装的 Metro 应用程序的显示名称

c# - 验证对象在 Rhino Mocks 中调用自身