2003和当前MSBuild模式之间的区别?

我们的项目文件已经有一段时间了,它们包括xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 。 我想弄清楚如何在CONDITION执行子string匹配,所以我想我会看看架构,看看是否有东西跳出来对我。

试图获取架构结果在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 

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

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

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

我猜测我们应该使用2003架构,因为它似乎已经被弃用或撤销了,但是除此之外我不太了解。 我的问题是:

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

现在我们试图与AppVeyor进行整合,版本似乎更加相关。 我们在自动化testing方面遇到问题( 无法在AppVeyor下执行64位testing , 为什么AppVeyor使用vs2010工具来处理VS2015图像? ),AppVeyor支持build议更改XML标头中的版本号。 下面是一个典型的VCXPROJ文件的头。

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

Visual Studio 2015的XML编辑器(也可能是其他版本)在%InstallRoot%\Xml\Schemas本地提供模式缓存。 看那里的msbuild.xsd

如果微软在命名空间URI提供它,那将是很好的,

 http://schemas.microsoft.com/developer/msbuild/2003 

但是XML名称空间名称URI不需要是可检索的 。 请注意,上述名称空间URI 在Visual Studio 2015中仍然是最新的 。