Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多项目模板Visual Studio 2017_C#_Visual Studio 2017_Project Template - Fatal编程技术网

C# 多项目模板Visual Studio 2017

C# 多项目模板Visual Studio 2017,c#,visual-studio-2017,project-template,C#,Visual Studio 2017,Project Template,我已经按照文章创建了一个模板。我的项目结构如下:ProjectName.Domain、ProjectName.Service、ProjectName.UI、ProjectName.sln、root.vstemplate root.vstemplate文件包含以下内容: 在每个子项目中都有一个ProjectName.vstemplate文件,其中包含以下内容: 我已将*.zip文件添加到/My Documents/Visual Studio 2017/Templates/ProjectTemp

我已经按照文章创建了一个模板。我的项目结构如下:ProjectName.Domain、ProjectName.Service、ProjectName.UI、ProjectName.sln、root.vstemplate

root.vstemplate文件包含以下内容:

在每个子项目中都有一个ProjectName.vstemplate文件,其中包含以下内容:


我已将*.zip文件添加到/My Documents/Visual Studio 2017/Templates/ProjectTemplates/,但该模板不会显示在“新建项目”对话框中。

使用/installvstemplates开关运行devenv.exe。这将强制Visual Studio更新项目和项模板

乙二醇

或者您在哪里安装了VisualStudio。不过,我建议将zip添加到ProjectTemplates中的一个文件夹中,否则会将项目对话框弄得一团糟


如果您想在bat文件中使用类似的内容,这里有一个简单的示例,说明如何轻松地做到这一点

set VSDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
echo Updating templates...
START "" /B /W "%VSDir%\devenv.exe" /installvstemplates
echo All done!
pause

我在下面的示例中也没有成功,该示例使用Version=“2.0.0”作为根vstemplate文件。然而,当我使用Version=“3.0.0”遵循这个示例时,它起了作用

我从文章中复制了此xml以供快速参考:

<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">  
  <TemplateData>  
    <Name>DevEnvExe Mobile Application Template</Name>  
    <Description>UWP based Windows mobile application with online and offline feature</Description>  
    <ProjectType>CSharp</ProjectType>  
    <ProjectSubType>  
    </ProjectSubType>  
    <SortOrder>1000</SortOrder>  
    <CreateNewFolder>true</CreateNewFolder>  
    <DefaultName>DevEnv_Template</DefaultName>  
    <ProvideDefaultName>true</ProvideDefaultName>  
    <LocationField>Enabled</LocationField>  
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>  
    <Icon>img.png</Icon>  
  </TemplateData>  
  <TemplateContent>  
    <ProjectCollection>  
            <ProjectTemplateLink ProjectName="$projectname$.Offline">  
                Dev_Offline\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
            <ProjectTemplateLink ProjectName="$projectname$.Online">  
                DevEnv_Online\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        <ProjectTemplateLink ProjectName="$projectname$.Service">  
                DevEnv_Service\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        <ProjectTemplateLink ProjectName="$projectname$">  
                DevEnv_Template\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        </ProjectCollection>  
  </TemplateContent>  
</VSTemplate>  

DevEnvExe移动应用程序模板
具有在线和离线功能的基于UWP的Windows mobile应用程序
CSharp
1000
真的
DevEnv_模板
真的
启用
真的
img.png
Dev_Offline\MyTemplate.vstemplate
DevEnv_Online\MyTemplate.vstemplate
DevEnv\u服务\MyTemplate.vstemplate
DevEnv_Template\MyTemplate.vstemplate

您可以使用此处提供的工具:

并使用桌面客户端或命令行工具

build configuration [configurationName]
在桌面客户端中设置如下配置后:

你可以走了


这样,您就可以轻松地定期更新模板。

您曾经解决过这个问题吗?是否有此问题的可执行文件?我试图让它在我的计算机上运行,但桌面客户端项目无法加载。(我在github repo上记录了一个问题。)@inejwstine感谢这个问题。一旦netcore 3.0 sdk达到RTM状态,我将把一个可执行文件推送到github。我已经在github上回答了您的问题。
build configuration [configurationName]