2016-10-05 3 views
0

Наши файлы проекта были в течение некоторого времени, и они включают xmlns="http://schemas.microsoft.com/developer/msbuild/2003">. Я пытаюсь выяснить, как выполнить substring match in a CONDITION, поэтому я подумал, что посмотрю на схему, чтобы увидеть, что что-то выскочит из меня.Разница между 2003 и текущими схемами MSBuild?

Попытка принести результаты схемы в 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 

Когда я посетил в веб-браузере, Microsoft вернула следующее сообщение мне, что указывает на схему, используемую, чтобы быть в наличии, но нет в наличии:

Ресурс, который вы ищете, удален, если его имя изменено или временно недоступно.

У Microsoft есть документация по адресу MSBuild Project File Schema Reference, но в нем не указаны доступные схемы, URL схемы или различия между ними.

Я предполагаю, что мы должны не использовать, используя схему 2003 года, поскольку она кажется устаревшей или изъятой, но я не знаю намного больше этого. Мои вопросы:

  • Какую схему мы должны использовать?
  • Каков URL-адрес схемы?
  • В чем разница между схемой 2003 и схемой, которую я должен использовать?

Версии, кажется, более актуально сейчас, что мы пытаемся интегрировать с AppVeyor. У нас возникают проблемы с автоматическим тестированием (Can't perform 64-bit testing under AppVeyor? и Why does AppVeyor use VS2010 tools for VS2015 image?), а поддержка AppVeyor предлагает изменение номеров версий в заголовке XML. Ниже приведена глава типичного файла VCXPROJ.

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

ответ

2

XML-редактор для Visual Studio 2015 (возможно, и другие версии, а) обеспечивает кэш схем локально в %InstallRoot%\Xml\Schemas. Посмотрите на msbuild.xsd.

Было бы неплохо, если бы Microsoft при условии его в пространстве имен URI,

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

но XML namespace name URIs need not be retrievable. Обратите внимание, что указанное выше URI пространства имен остается current as of Visual Studio 2015.

+1

Спасибо @kjhughes, вы правы. В '% InstallRoot% \ Xml \ Schemas' есть куча вещей. К сожалению, нет '2003',' 2005', '2008',' 2010' и т. Д. Минимальная версия Visual Studio для нашего проекта - VS 2010. Какую схему мы должны использовать с VS2010? Я понимаю, что могу использовать 2003 год, но я рад использовать его с большим количеством функций, так как с годами мы перевернули. – jww

+0

Используйте 2003, пока Microsoft не предоставит более новую версию, которая лучше вас устроит. Обратите внимание, однако, что есть школа мышления, что устойчивые пространства имен не должны меняться в разных версиях; вы увидите это, например, в пространствах имен W3C для HTML ('http: // www.w3.org/1999/xhtml'). ** Последняя версия XSD не обязательно соответствует обновленному URI пространства имен. ** – kjhughes

Смежные вопросы