任务:
我想从Visual Studio 2012项目创建项目模板,因此我可以快速创建类似的项目。这需要重命名文件并更改根命名空间。不幸的是,这不会发生......
做了什么:
$safeprojectname$
,另一个是自定义参数:$custom1$
。$safeprojectname$
被替换。文件不重命名,$custom1
不被替换。
MyTemplate.vstemplate
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>MyTemplateName</Name>
<Description>My Description</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType></ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>My Default Name</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="MyTemplate.csproj" File="MyTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="app.config">app.config</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Data.cs">Data.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.cs">Main.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Form.xaml">Form.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Form.xaml.cs">Form.xaml.cs</ProjectItem>
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.settings">Settings.settings</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.Designer.cs">Settings.Designer.cs</ProjectItem>
</Folder>
</Project>
<CustomParameters>
<CustomParameter Name="$custom1$" Value="Some.Custom.Namespace.Prefix."/>
<CustomParameters>
</TemplateContent>
</VSTemplate>
MyTemplate.csproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
...
<OutputType>Library</OutputType>
<RootNamespace>$custom1$$safeprojectname$</RootNamespace>
<AssemblyName>$safeprojectname$</AssemblyName>
</PropertyGroup>
<ItemGroup>
<Compile Include="$safeprojectname$.cs" />
<Compile Include="$safeprojectname$Data.cs" />
<Compile Include="$safeprojectname$Form.xaml.cs">
<DependentUpon>$safeprojectname$Form.xaml</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Page Include="$safeprojectname$Form.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>PublicSettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
</Project>
的问题?
如何让Visual Studio更改文件中的$ custom1 $参数并将文件(如Main.cs)重命名为$ safeprojectname $ .cs?
什么不起作用
答案 0 :(得分:0)
我不知道视觉stuido handels如何导出模板,但我知道修改默认模板,visual studio有两个版本的模板。您可以在“ProjectTemplate”文件夹中找到另一个,“ProjectTemplateCache”。
如果没有您的修改,您的导出模板仍然在cach中。 尝试使用参数:“devenv / installvstemplates”或“devenv / setup”从cmd statring visual studio刷新缓存。
如果您想创建多个模板,我建议您下载Visual Studio并使用VSIX项目解模板。 SDK还允许以更有效的方式调试模板。您可以按Debug,然后通过安装VSIX(模板)来重新获取Visual Studio实例。
答案 1 :(得分:0)
您的步骤和项目文件看起来正确无误。您需要更新Visual Studio模板缓存。 How to update Visual Studio Template Cache中的答案与步骤相关联。
以下是适用于我的步骤(请注意您的用户名将有所不同):
C:\Users\chadd\Documents\Visual Studio 2013\My Exported Templates
的模板副本 - 按照上面OP中的步骤进行操作。C:\Users\chadd\AppData\Roaming\Microsoft\VisualStudio\12.0\ProjectTemplatesCache
C:\Users\chadd\Documents\Visual Studio 2013\Templates\ProjectTemplates
C:\Users\chadd\Documents\Visual Studio 2013\Templates\ProjectTemplates
devenv /installvstemplates
此步骤需要一段时间(几分钟),因此请耐心等待命令提示符返回。