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