4

Code Contracts 重写器使用强名称 ( sn.exe) 实用程序对重写的程序集进行签名。但是在 VS 2010 的输出窗格中,我看到:

Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1

有没有办法强制使用sn.exe. 或者它没有任何区别?

4

1 回答 1

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 副本的确切路径。例如:

<CodeContractsSnExe>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\sn.exe"</CodeContractsSnExe>

如果您需要支持备用版本,最好保留旧行,但以值为空为条件进行赋值。这样,您可以仅在需要时指定覆盖。

于 2011-05-03T15:20:02.693 回答