Visual Studio 2012 项目模板自定义参数和重命名问题



任务:
我想从Visual Studio 2012项目中创建一个项目模板,因此我可以快速创建类似的项目。这需要更重命名的文件,并更改root名称空间。不幸的是,这不会发生...

做了什么:

  1. 我已经创建了该项目,并根据MSDN页面指定的某些名称替换了某些名称。一个替代品是$safeprojectname$,另一个是自定义参数:$custom1$
  2. 该项目已通过 file->导出模板出口为项目模板... 选项。
  3. 我已经解开了创建的ZIP文件。
  4. 我已经编辑了 .vstemplate .csproject 文件。该代码在下面找到。
  5. 我已经重新拉紧了文件。
  6. Visual Studio已重新启动,并且已经打开了一个项目。
  7. 我去添加 ->新项目 -> *我的自定义模板 *,给它一个名字并添加项目。
  8. 添加项目,$safeprojectname$被替换。这些文件是重命名的,$custom1 not 被替换。

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="PropertiesAssemblyInfo.cs" />
        <Compile Include="PropertiesSettings.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="PropertiesSettings.settings">
            <Generator>PublicSettingsSingleFileGenerator</Generator>
            <LastGenOutput>Settings.Designer.cs</LastGenOutput>
        </None>
    </ItemGroup>
</Project>

问题?
如何使Visual Studio更改文件中的$ custom1 $参数并将文件(例如main.cs)重命名为$ safeprojectName $ .cs?

什么不起作用

  • 按照MSDN页面上的步骤使我无处不在。文件名更改也不是自定义参数。
  • 搜索Google给了我MSDN页面或引用它们。

我不知道Visual Stuido如何导出模板,但是从修改默认模板中,Visual Studio具有两个版本的模板。一个您将在" ProjectTemplate"文件夹中找到另一个将在" ProjectTemplateCache"中。

也许您的导出模板仍在CACH内部,没有您的修改。尝试使用参数从CMD使用statring Visual Studio刷新缓存:" devenv/installvstemplates"或" devenv/setup"。

如果要创建多个模板,我建议下载Visual Studio并使用VSIX项目来挖掘模板。SDK还允许以更效率的方式调试模板。您可以按Debug,然后使用VSIX的安装(模板)恢复Visual Studio实例。

您的步骤和项目文件看起来正确。您需要更新Visual Studio模板缓存。如何更新Visual Studio模板的答案链接到步骤。

这是对我有用的步骤(请注意,您的用户名不同):

  1. 关闭所有开放的视觉工作室实例。
  2. 编辑位于C:UserschaddDocumentsVisual Studio 2013My Exported Templates中的模板的副本 - 按照Op。pop。ep。
  3. 中的上述步骤操作
  4. 搜索以查找模板的其他副本并删除它们。我有Visual Studio 2013,并在这两个目录中找到了副本。C:UserschaddAppDataRoamingMicrosoftVisualStudio12.0ProjectTemplatesCache C:UserschaddDocumentsVisual Studio 2013TemplatesProjectTemplates
  5. 将YourTemplate.zip的编辑版本复制到C:UserschaddDocumentsVisual Studio 2013TemplatesProjectTemplates
  6. 打开视觉工作室的命令提示(作为管理员运行)并输入devenv /installvstemplates此步骤需要一段时间(几分钟),因此请耐心等待命令提示。
  7. 开放视觉工作室验证您的修改模板现已正常工作。

相关内容

  • 没有找到相关文章

最新更新