如何配置C#项目以使用Windows SDK 7.1工具生成?

如何配置C#项目以使用Windows SDK 7.1工具生成?,c#,windows,sdk,managed,C#,Windows,Sdk,Managed,我们正在尝试切换许多项目以使用SDK7.1。对于C++项目来说,这似乎很简单,您可以将项目设置中的“平台工具集”属性改为“Wiels7.1SDK”,所有都是好的。 但是,对于C#projects(如果您将构建输出设置为诊断模式),我们可以看到各种工具,如sgen、resgen、LC,都是从以前的SDK 7.0A目录中运行的。或者,在我们安装了vistualstudio2012的一些机器上,其中一些工具来自v8.0asdk文件夹 工具与其生成的部件之间的不匹配似乎会导致各种错误,例如: LC :

我们正在尝试切换许多项目以使用SDK7.1。对于C++项目来说,这似乎很简单,您可以将项目设置中的“平台工具集”属性改为“Wiels7.1SDK”,所有都是好的。 但是,对于C#projects(如果您将构建输出设置为诊断模式),我们可以看到各种工具,如sgen、resgen、LC,都是从以前的SDK 7.0A目录中运行的。或者,在我们安装了vistualstudio2012的一些机器上,其中一些工具来自v8.0asdk文件夹

工具与其生成的部件之间的不匹配似乎会导致各种错误,例如:

LC : error LC0000: 'Could not load file or assembly
'S:\Libraries\Bin\Release\Some.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.'
似乎我们可以编辑.csproj文件和几乎临时的、在重新定义各种SDKPath属性之前构建etc目标。这似乎迫使人们使用正确的工具。但是,如果你觉得很“黑”。我们一定是错过了一些设置,因为我们仍然会遇到一些错误

或者,我们发现,我们可以在此处更改注册表值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\SDK40ToolsPath
指向正确的SDK。但是,必须修改环境来支持这一点感觉是错误的。我们想要构建我们产品的旧版本,而必须切换环境来实现这一点既难看又容易出错

有没有什么官方的方法

谢谢


另外,我在海报上发现了这个问题,海报似乎在问类似的问题,但这个问题似乎没有得到回答。

以下两篇文章讨论了如何定义自定义工具集。也许其中一个需要为7.1 SDK定义,然后可以指示MSBuild使用它

http://msdn.microsoft.com/en-us/library/bb397428.aspx