【问题标题】:Force Code Contracts to use sn.exe 4.0强制代码合同使用 sn.exe 4.0
【发布时间】:2011-05-03 09:22:24
【问题描述】:

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

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

有没有办法强制使用sn.exe4.0版本。还是没有区别?

【问题讨论】:

    标签: .net visual-studio-2010 code-contracts strongname


    【解决方案1】:

    您可以修改代码协定的 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>
    

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

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 2011-01-28
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多