Code Contracts重写器使用强名称(sn.exe
)实用程序来重新签名重写的程序集。但是,在VS 2010的“输出”面板中,我看到:
Microsoft(R).NET Framework强名称实用程序版本3.5.30729.1
有没有办法强制使用sn.exe
版本 4.0 。或者它没有任何区别?
答案 0 :(得分:2)
您可以修改代码约定的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副本的确切路径。 e.g:
<CodeContractsSnExe>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\sn.exe"</CodeContractsSnExe>
如果您需要支持备用版本,最好保留旧行,但要使赋值为空值。这样,您只能在需要时指定覆盖。