Our project files have been around for a while, and they include xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
. I'm trying to figure out how to perform a substring match in a CONDITION
so I thought I would look at the schema to see if something jumped out at me.
Attempting to fetch the schema results in a 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
When I visited in a Web Browser, Microsoft returned the following message to me, indicating the schema used to be available but its no longer available:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Microsoft has documentation at MSBuild Project File Schema Reference, but it does not list the schemas available, the schema's URL or the differences between them.
I'm guessing we should not be using the 2003 schema since it appears to be deprecated or withdrawn, but I don't know much more beyond that. My questions are:
- What schema should we be using?
- What is the URL to the schema?
- What are the differences between the 2003 schema and the schema I should be using?
The versions seems to be more relevant now that we are trying to integrate with AppVeyor. We are having problems with automated testing (Can't perform 64-bit testing under AppVeyor? and Why does AppVeyor use VS2010 tools for VS2015 image?), and AppVeyor support is suggesting a change in version numbers in the XML header. Below is the head of a typical VCXPROJ file.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">