2003 和当前 MSBuild 架构之间的区别?

jww*_*jww 3 xml windows msbuild xsd visual-studio

我们的项目文件已经存在了一段时间,它们包括xmlns="http://schemas.microsoft.com/developer/msbuild/2003">. 我正在尝试弄清楚如何在 a 中执行子字符串匹配CONDITION,所以我想我应该查看架构,看看是否有什么东西跳出来。

尝试获取架构会导致 404:

$ wget http://schemas.microsoft.com/developer/msbuild/2003
--2016-10-04 22:44:43--  http://schemas.microsoft.com/developer/msbuild/2003
Resolving schemas.microsoft.com (schemas.microsoft.com)... 65.54.226.187
Connecting to schemas.microsoft.com (schemas.microsoft.com)|65.54.226.187|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
Run Code Online (Sandbox Code Playgroud)

当我在 Web 浏览器中访问时,Microsoft 返回了以下消息给我,指示架构曾经可用,但不再可用:

您正在查找的资源已被删除、更名或暂时不可用。

Microsoft 在MSBuild 项目文件架构参考中提供了文档,但它没有列出可用的架构、架构的 URL 或它们之间的差异。

我猜我们应该使用 2003 模式,因为它似乎已被弃用或撤回,但除此之外我不知道更多。我的问题是:

  • 我们应该使用什么模式?
  • 架构的 URL 是什么?
  • 2003 年架构和我应该使用的架构有什么区别?

现在我们正在尝试与 AppVeyor 集成,这些版本似乎更相关。我们在自动化测试方面遇到问题(无法在 AppVeyor 下执行 64 位测试?以及为什么 AppVeyor 对 VS2015 映像使用 VS2010 工具?),并且 AppVeyor 支持建议更改 XML 标头中的版本号。下面是典型 VCXPROJ 文件的头部。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Run Code Online (Sandbox Code Playgroud)

kjh*_*hes 5

Visual Studio 2015(也许还有其他版本)的 XML 编辑器在%InstallRoot%\Xml\Schemas. 在那里寻找msbuild.xsd.

如果 Microsoft 在名称空间 URI 中提供它,那就太好了,

http://schemas.microsoft.com/developer/msbuild/2003
Run Code Online (Sandbox Code Playgroud)

XML 名称空间名称 URI 不需要是可检索的请注意,自 Visual Studio 2015 起,上述命名空间 URI 仍然有效。