2016-10-05 52 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 

當我在Web瀏覽器訪問,微軟返回以下信息給我,表示以前是使用的模式,但其不再可用:

您正在查找的資源已刪除,名稱爲 已更改,或暫時無法使用。

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

爲Visual Studio 2015年(也許其他版本)中的XML編輯器%InstallRoot%\Xml\Schemas提供本地架構的緩存。看那裏的msbuild.xsd

這將是很好,如果微軟在命名空間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版本,直到微軟提供了一個更好的適合你的新版本。但是請注意,有一種思想認爲穩定的命名空間不應該在不同版本之間進行更改;例如,您將在HTML的W3C命名空間('http:// www.w3.org/1999/xhtml')中看到這一點。 **最新版本的XSD不一定對應於更新的名稱空間URI。** – kjhughes