繁体   English   中英

Visual Studio 项目模板支持新的 csproj 格式

[英]Visual Studio Project Template Support for new csproj format

我正在 Visual Studio 2019 中创建一些模板,以使用新的 .csproj 格式(基于 SDK 属性),但我遇到了一个问题。

通常,如果要在模板中包含文件,请将其添加到 .vstemplate 中:

  <TemplateContent>
    <Project File="ProjectTemplate.csproj" ReplaceParameters="true">
      <ProjectItem ReplaceParameters="true" TargetFileName="$classprefix$Config.cs">ProjectTemplateConfig.cs</ProjectItem>
    </Project>
  </TemplateContent>

并在 .csproj 中:

<ItemGroup>
    <Compile Include="$classprefix$Config.cs" />
</ItemGroup>

一切都正常工作。

但是,我正在尝试使用新格式,其中包含 .csproj 中的单个文件,它会自动选取项目文件夹中的所有文件。

但是当我从 csproj 中删除<Compile>标记时,模板不再复制文件。

我什至在使用IWizard ,我可以看到 Visual Studio 对IWizard.ShouldAddProjectItem(string)的调用,我返回true ,但它没有添加它。

使用 WPF 时需要更加极端,如果添加第二个<Page>标记,编译器实际上会抛出错误。

Visual Studio 模板是否支持新的 .csproj 格式? 如果是这样,无论它们是否存在于 .csproj 文件中,我怎样才能让它复制文件?

Visual Studio 模板是否支持新的 .csproj 格式? 如果是这样,无论它们是否存在于 .csproj 文件中,我怎样才能让它复制文件?

事实上VS目前不支持为新的sdk格式项目创建项目模板。

实际上,VS2019 只有Net Framework项目模板,用于创建旧的 sdk 格式项目。 而如果你像你的情况一样,简单地将此类项目中的xxxx.csproj文件修改为新的sdk格式,但是模板项目本身的net framework仍然是net frameworksimply migrating the old sdk format to the new sdk format still has various compatibility issues ),因此最终模板仍然适用于网络框架项目,而不是net core/net standard项目。

作为建议

我建议您可以创建一个新的 sdk 格式项目,根据需要进行一些需求更改,然后使用 VS UI 选项导出项目模板来导出此类新的 sdk 格式项目,我认为这会很好用。

此外,如果您仍然想创建适用于新 sdk 格式项目的项目模板,我们建议您可以在我们的用户语音论坛 (DC) 中发布功能请求 ---- suggest a feature来分享您的想法和团队会认真考虑您的想法并给您满意的答复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM