Visual studio 2017: вложение файлов в проект библиотеки классов - PullRequest
3 голосов
/ 21 апреля 2019

В веб-проектах у вас есть возможность вложения файлов

 + startup.cs
   +--startup.internals.cs
   +--startup.configuration.cs

Есть ли способ добиться такого же поведения и в проекте библиотеки классов?

Обновления:Частично решено

Хорошо, понял,

Вам необходимо знать путь к вашим файлам.

для такой структуры (файлы находятся на уровне проекта)

+-- myProject.csproj
   +-- startup.cs
   +-- startup.internals.cs
   +-- startup.configuration.cs

Тогда это конфигурация, которую вы ищете.

  <ItemGroup>
    <Compile Update="startup.*.cs">
      <DependentUpon>startup.cs</DependentUpon>
    </Compile>
  </ItemGroup>

Для структуры вложенных папок

+-- myProject.csproject
   +-- Folder_A
      +-- Folder_A1
         +-- startup.cs
         +-- startup.internals.cs
         +-- startup.configuration.cs

вам нужно овладеть проектомпуть с использованием макроса buildin $ (ProjectDir)

  <ItemGroup>
    <Compile Update=" $(ProjectDir)\Folder_A\Folder_A1\startup.*.cs">
      <DependentUpon> $(ProjectDir)\Folder_A\Folder_A1\startup.cs</DependentUpon>
    </Compile>
  </ItemGroup>

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

Кто-нибудь поможет?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2019

Я полагаю, вы можете сделать это в вашем файле csproj.

<Compile Include="startup.cs">
    <DependentUpon>startup.internals.xaml</DependentUpon>
    <DependentUpon>startup.configureation.xaml</DependentUpon>
</Compile>
1 голос
/ 22 апреля 2019

Чтобы ответить на ваше обновление:

Что-то похожее на этот вопрос .DependentUpon - это правильные метаданные для поведения.

Но путь для этих метаданных не поддерживается, это должно быть имя файла, которое должно находиться в той же папке.Таким образом, содержимое ItemGroup, которое вы используете, должно выглядеть следующим образом:

    <Compile Include="Folder_A\Folder_A1\startup.cs" />
    <Compile Include="Folder_A\Folder_A1\startup.configuration.cs">
      <DependentUpon>startup.cs</DependentUpon>
    </Compile>
    <Compile Include="Folder_A\Folder_A1\startup.internals.cs">
      <DependentUpon>startup.cs</DependentUpon>
    </Compile>

И после моей проверки я думаю, что вам нужно использовать элемент «Включить» вместо «Обновить», если вы используете проект библиотеки классов .net fx.

Обновление: (Элемент Update доступен только для основного проекта .net в соответствии с этот документ ).

И если восновной проект .net, как то, что тестирует MCR, может быть, Update более подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...