私たちのプロジェクトファイルはしばらくありましたが、それにはxmlns="http://schemas.microsoft.com/developer/msbuild/2003">
が含まれています。私はsubstring match in a CONDITION
を実行する方法を理解しようとしていますので、私は何かが私に飛び出したかどうかを見るためにスキーマを見ると思っていました。 2003年と現在のMSBuildスキーマの違いは?
$ 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が利用できるようにするために使用するスキーマを示し、私に次のメッセージが返されたが、そのもはや:404で、スキーマの結果を取得しようとすると利用可能なリソース:
あなたが探しているリソースが削除され、その名前が に変更されたか、一時的に利用できません。
マイクロソフトでは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
Microsoftが提供するより新しいスイートを提供するまで、2003年版を使用してください。しかし、安定した名前空間はバージョン間で変わるべきではないという考えの学校があることに注意してください。たとえば、これはHTMLのW3Cネームスペース(http:// www.w3.org/1999/xhtml)にあります。 ** XSDの最新バージョンは必ずしも更新された名前空間URIに対応しているとは限りません** – kjhughes