替换VSIX中.csproject文件的名称

时间:2019-03-20 12:22:20

标签: c# vsix visual-studio-templates

我创建了VSIX,该VSIX正在创建包含一些其他文件的Project文件。 替换后,我的文件可以正常工作,但是我的项目文件未正确重命名。

简短示例。我创建了一个Foo项目。即使我将Projektname命名为Foo,Assemblyname也应该是MY.Foo,而Projectfile也应该是My.Foo。

VS:Template

586 21.6.2018 51 2 85 555 2
384 9.4.2016 51 13 7 910 1
49 12.8.2016 91 4 76 769 2
782 2.5.2018 59 7 73 144 1
573 6.3.2017 14 10 73 591 2

.csproj模板文件的片段

 <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
  <TemplateData>
    <Name>ClusterTemplate</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <ProjectSubType>
    </ProjectSubType>
    <SortOrder>1000</SortOrder>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>ClusterTemplate</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
    <LocationField>Enabled</LocationField>
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <Project TargetFileName="My.$projectname$.csproj" File="Test.csproj" ReplaceParameters="true">
      <ProjectItem ReplaceParameters="true" TargetFileName="I$projectname$Cluster.cs">ITestCluster.cs</ProjectItem>
      <Folder Name="PrintTemplates" TargetFolderName="PrintTemplates" />
      <Folder Name="Properties" TargetFolderName="Properties">
        <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
      </Folder>
      <Folder Name="TemplateFactories" TargetFolderName="TemplateFactories" />
      <ProjectItem ReplaceParameters="true" TargetFileName="$projectname$Cluster.cs">TestCluster.cs</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="$projectname$RopeTarget.cs">TestRopeTarget.cs</ProjectItem>
    </Project>
  </TemplateContent>
</VSTemplate>

因此最终结果是Assemblyname和Namespace以及所有文件都在我的.csproj文件旁边正确重命名。他留着我的输入Foo。

如何使用VSIX / VSTemplate重命名.csproj文件

1 个答案:

答案 0 :(得分:0)

我意识到我迟到了。但是,当我向我添加类似的内容时,我只是没有包含TargetFileName,并且在我选择项目模板后出现的对话框中,无论我键入什么名称,该项目都会被命名。

<Project File="ProjectTemplate.csproj" ReplaceParameters="true">...</Project>