2014-09-04 66 views
3

我正在创建一个VS 2013项目模板,您可以添加到它的文件类型之一是一个XML文件,我有XSD但我一直无法弄清楚如何告诉VS当文件被添加时,将模式分配给它。项目项目模板:xml文件类型与XSD /架构

我有这样的事情。假设模式是Format.XSD,我在projectitem模式中搜索了一些东西,但是找不到任何相关的东西。

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> 
    <TemplateData> 
    <DefaultName>type.format.ps1xml</DefaultName> 
    <Name>PowerShell Format File</Name> 
    <Description>An type format definition</Description> 
    <ProjectType>PowerShell</ProjectType> 
    <SortOrder>10</SortOrder> 
    <Icon>PowerShell.ico</Icon> 

    </TemplateData> 
    <TemplateContent> 
    <References> 

    </References> 
    <ProjectItem TargetFileName="$fileinputname$.format.ps1xml" ReplaceParameters="false">format.ps1xml</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

回答

1

一个古老的问题,但这里只是一个答案的记录。它可能会帮助其他人。

因此不幸的是,VSTemplate架构不允许您为XML文件指定XSD。

要做到这一点,您必须将文件添加到Visual Studio Schema Cache

架构缓存是这里的文件夹:%的视觉工作室的目录%\ XML \架构

  1. 添加您的XSD文件。
  2. 添加一个XML文件(所谓的目录文件),将您的文件扩展名与您的XSD相关联。 (目录文件的名称可以是任何内容,但其扩展名必须为.xml)

例如,

<?xml version="1.0" encoding="utf-8"?> 
<SchemaCatalog xmlns="http://schemas.microsoft.com/xsd/catalog"> 
    <Association extension="myextension" schema="%InstallRoot%/xml/schemas/MyXsd.xsd" /> 
</SchemaCatalog> 

UPDATE:

与Visual Studio 2017年开始,你可以使用VSIX(Visual Studio的扩展性),以XSD文件安装到Visual Studio架构文件夹。

请参阅:https://docs.microsoft.com/en-us/visualstudio/extensibility/set-install-root

+0

感谢您的回复。我没有在一段时间的工作,我不能回忆,如果它实际上是否解决了,我将不得不回到:) – jrich523 2016-05-12 16:03:51

+0

更新的文档在这里:https://docs.microsoft.com/en-us/visualstudio/xml-tools/schema-cache – 2017-11-30 10:07:57

+0

感谢@Drew的链接更新。基于此,我已经更新了我的答案。 – Vizu 2017-11-30 11:14:41