Visual Studio Project Template Поддержка нового формата csproj - PullRequest
0 голосов
/ 17 марта 2020

Я работаю над созданием некоторых шаблонов в 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, он автоматически подбирает все файлы в папке вашего проекта.

Но когда я удаляю тег <Compile> из csproj, шаблон больше не копирует файл.

Я даже использую IWizard и вижу вызов Visual Studio для IWizard.ShouldAddProjectItem(string), к которому я возвращаю true, однако он не добавляет его.

При работе с WPF необходимость более велика, когда, если вы добавите второй тег <Page>, компилятор фактически выдаст ошибка.

Поддерживают ли шаблоны Visual Studio новый .csproj fo РМАТ? И если да, то как я могу скопировать файлы независимо от их присутствия в файле .csproj?

1 Ответ

0 голосов
/ 17 марта 2020

Поддерживают ли шаблоны Visual Studio новый формат .csproj? И если да, как я могу сделать так, чтобы он копировал файлы независимо от их присутствия в файле .csproj?

На самом деле , VS не поддерживает создание шаблон проекта для новых проектов формата SDK в настоящее время.

На самом деле , VS2019 имеет только шаблон проекта Net Framework, который работает для создания старых проектов формата SDK. И если вы просто измените файл xxxx.csproj в таком проекте в новый формат SDK, как в вашей ситуации, но сама структура шаблона проекта все равно будет net framework (simply migrating the old sdk format to the new sdk format still has various compatibility issues), в результате окончательный шаблон все еще работает для net каркасных проектов, а не net core/net standard проектов.

В качестве предложения ,

Я предлагаю вам создать новый проект формата SDK, внесите в требования некоторые изменения, а затем используйте опцию VS UI Экспорт шаблона проекта , чтобы экспортировать такие новые проекты в формате SDK, и я думаю, что это будет хорошо работать.

Кроме того , если вы все еще хотите создать шаблон проекта, который работает для новых проектов в формате SDK, мы рекомендуем вам опубликовать запрос функции в нашем форуме User Voice (D C) ---- suggest a feature поделиться своей идеей, и команда серьезно рассмотрит вашу идею и даст вам удовлетворительный ответ.

...