我們的項目文件已經有一段時間了,它們包括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">
謝謝@kjhughes,你是對的。 '%InstallRoot%\ Xml \ Schemas'中有一堆東西。不幸的是,沒有'2003','2005','2008','2010'等。我們項目的最低Visual Studio版本是VS 2010.我們應該在VS2010中使用什麼模式?我意識到我可以使用2003年的版本,但是我很樂意使用具有更多功能的版本,因爲這些年來我們已經進行了升級。 – jww
使用2003版本,直到微軟提供了一個更好的適合你的新版本。但是請注意,有一種思想認爲穩定的命名空間不應該在不同版本之間進行更改;例如,您將在HTML的W3C命名空間('http:// www.w3.org/1999/xhtml')中看到這一點。 **最新版本的XSD不一定對應於更新的名稱空間URI。** – kjhughes