2011-05-03 53 views
4

代碼合同重寫器使用強名稱(sn.exe)實用程序來退出重寫的程序集。然而,在VS 2010的輸出窗格中我看到:使用強制代碼合同sn.exe 4.0

微軟(R).NET Framework中的強名稱實用程序版本3.5.30729.1

有沒有辦法使用的版本4.0給力的sn.exe。或者它沒有任何區別?

回答

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> 

如果您需要支持其他的版本,這將是一個更好的主意,讓舊線,但要在值爲空的分配條件。這樣,只有在需要時纔可以指定覆蓋。

+1

...我必須重新啓動VS才能使其工作。 – 2011-06-17 09:43:11