c# – 在构建.NET 4时找不到LC.exe文件

迁移到.net 4.0时出现问题,在尝试构建时发生以下错误.
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1917,9): 
  error MSB3086: Task Could not find "LC.exe" using the SdkToolsPath "" or the 
  registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".

 Make sure the SdkToolsPath is set and the tool exists in the correct processor 
 specific location under the SdkToolsPath and that the Microsoft Windows SDK is
 installed 

 External Program Failed: C:\windows\microsoft.net\framework\v4.0.30319\MSBuild.exe
 (return code was 1)

微软Windows sdk的最新版本安装在机器上,但版本为v7.1.要解决这个问题,我把注册表项放在以下位置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder 
 to C:\Program Files\Microsoft SDKs\Windows\v7.1\.

不过,我觉得将7.0A注册表项指向7.1安装感到有点脏.有没有人有更好的解决这个问题?

解决方法

看看: Running MSBuild fails to read SDKToolsPath

在其中一个答案Simmo建议将认版本的SDK设置为7.1. Windows SDK的7.1版本比Visual Studio 2010附带的版本(即7.0a)更新. LC.exe包含在7.1中,一旦您使用WindowsSdkVer.exe将7.1设置为认版本,一切正常.

然而,两个小怪物:
1)WindowsSdkVer.exe允许您从VS 2005和VS 2008中进行选择,但不列出VS 2010.只需设置VS 2008的认版本,并在2010年生效.

2)WindowsSdkVer.exe -version:v7.1没有为我工作,但WindowsSdkVer.exe没有任何参数,它提出了一个Windows界面.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...