【问题标题】:Replace name of .csproject file in VSIX在 VSIX 中替换 .csproject 文件的名称
【发布时间】:2019-08-09 05:00:39
【问题描述】:

我创建了一个 VSIX,它正在创建一个带有一些附加文件的项目文件。 替换 auf 我的文件工作正常,但我的项目文件未正确重命名。

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

VS:模板

 <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>

.csproj 模板文件片段

<RootNamespace>MY.$safeprojectname$</RootNamespace>
<AssemblyName>MY.$safeprojectname$</AssemblyName>

所以最终结果是 Assemblyname 和 Namespace 以及所有文件在我的 .csproj 文件旁边正确重命名。他仍然接受我的输入 Foo。

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

【问题讨论】:

    标签: c# vsix visual-studio-templates


    【解决方案1】:

    我意识到我已经晚了。但是当我添加一个类似的东西时,我只是没有包含 TargetFileName,并且在我选择项目模板后出现的对话框中输入的任何内容都会为项目命名。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-09
      • 2011-09-20
      • 2018-08-18
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多