【问题标题】:How do you configure C# projects to build using Windows SDK 7.1 tools?如何配置 C# 项目以使用 Windows SDK 7.1 工具进行构建?
【发布时间】:2012-08-24 12:50:56
【问题描述】:

我们正在尝试将很多项目切换为使用 SDK7.1。对于 C++ 项目,这似乎很简单,您可以将项目设置中的“平台工具集”属性更改为“Windows7.1SDK”,一切都很好。

但是,对于 C# 项目(如果您将构建输出设置为诊断模式),我们可以看到各种工具(例如 sgen、resgen、LC)在以前的 SDK 7.0A 目录中运行。或者,在我们安装了 Vistual Studio 2012 的某些机器上,其中一些工具来自 v8.0A SDK 文件夹。

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

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 属性的 BeforeBuild 等目标。这似乎迫使使用正确的工具。但是,如果感觉非常“hacky”。而且我们一定是错过了一些设置,因为我们仍然会遇到一些错误。

另外,我们发现,我们可以在这里更改注册表值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\SDK40ToolsPath

指向正确的 SDK。但是,必须修改环境来支持这一点感觉是错误的。我们想要构建我们产品的旧版本,并且必须切换环境来执行此操作是丑陋且容易出错的。

有没有官方的方法可以做到这一点?

谢谢。

附:我发现了这个问题http://social.msdn.microsoft.com/Forums/en-MY/windowssdk/thread/ebc8914f-d4b5-44e7-8c76-10332d155812,发帖人似乎在问类似的问题,但是问题似乎没有得到回答。

【问题讨论】:

    标签: c# windows sdk managed


    【解决方案1】:

    以下两篇文章讨论了定义自定义工具集。可能是为 7.1 SDK 定义的需求之一,然后可以指导 MSBuild 使用它。

    http://msdn.microsoft.com/en-us/library/bb383796(v=vs.110).aspx http://msdn.microsoft.com/en-us/library/bb397428.aspx

    【讨论】:

      猜你喜欢
      • 2012-01-28
      • 2011-10-22
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2012-06-21
      • 2018-12-25
      相关资源
      最近更新 更多