强制Code Contracts使用sn.exe 4.0

4
代码合同重写器使用强名称(sn.exe)实用程序来重新签名重写的程序集。但是在 VS 2010 的输出窗格中,我看到以下信息:

Microsoft (R) .NET Framework Strong Name Utility Version 3.5.30729.1

有没有办法强制使用版本4.0sn.exe?或者这没有任何区别吗?
1个回答

2
你可以修改Code Contracts的MSBuild目标文件,强制使用来自4.0 SDK版本的sn.exe。涉及到的目标文件通常位于C:\Program Files\Microsoft\Contracts\MsBuild\v4.0\Microsoft.CodeContracts.targets
最简单的修改方法是替换以下行:
<CodeContractsSnExe>"$(CodeContractsSdkPath)Bin\NETFX 4.0 Tools\sn.exe"</CodeContractsSnExe>

使用版本来指定要运行的sn.exe副本的确切路径。例如:
<CodeContractsSnExe>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\sn.exe"</CodeContractsSnExe>

如果您需要支持备用版本,最好的方法是保留旧代码,但是将赋值操作改为仅在值为空时才执行。这样,只有在需要覆盖时才需要指定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接