jyo*_*ung 21 .net c++-cli visual-studio-2010 assembly-signing
现在我正在设置Linker/Advanced/KeyFile选项.
我收到"mt.exe:一般警告810100b3:是一个强名称签名的程序集,并且嵌入清单会使签名无效.您需要重新签名此文件才能使其成为有效的程序集." .
从网上阅读,听起来我必须设置延迟签名选项,下载SDK,并运行sn.exe作为后期构建事件.当然在VS2010中必须有一种更简单的方法来执行这种常见操作?
Han*_*ant 15
这里有相当多的跛足,这在以前从未奏过.它在VS2010中被"修复"了,mt.exe现在会生成一个警告,而不是让它无声地出错.不是真正的修复,并且没有明显的修复,链接器不能只嵌入签名并且仍然允许mt.exe在之后运行.
解决方案是使用构建后事件重新签署程序集.看起来像这样:
Command = sn -Ra"$(TargetPath)"$(ProjectName).snk
如果您还没有密钥文件,则需要自己创建.snk文件,从Visual Studio命令提示符运行sn.exe.例如:
cd \whereTheProjectIsLocated
sn.exe -k MyProject.snk
Run Code Online (Sandbox Code Playgroud)
或者从容器中提取它或使用指定的密钥文件.延迟签名只是使用正确的命令行选项运行sn.exe.
小智 14
如果您不能/不会编辑Microsoft.Cpp.Win32.targets,则将以下内容添加到项目文件中也可以:
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- snip -->
<ItemDefinitionGroup>
<Link>
<KeyFile>$(LinkKeyFile)</KeyFile>
</Link>
</ItemDefinitionGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6450 次 |
最近记录: |