Visual Studio - Изменить выходной каталог NuGet для временных файлов - PullRequest
0 голосов
/ 12 марта 2020

В настоящее время кажется, что поведение VS проекта по умолчанию состоит в том, что управляемые NuGet зависимости имеют промежуточные файлы, созданные NuGet во время компиляции. Эти файлы находятся в папке obj:

enter image description here

Мне нравится иметь возможность контролировать имя этих выходных каталогов (как вы можете видеть с Binary и Object), и я хотел бы настроить свой проект так, чтобы папка obj не использовалась NuGet для хранения этих файлов. Есть ли способ указать это на уровне проекта или решения? Может быть, фрагмент кода MSBuild XML? Было бы неплохо.

Любая информация будет оценена.

1 Ответ

1 голос
/ 12 марта 2020

Есть ли способ указать это на уровне проекта или решения? Может быть, фрагмент кода MSBuild XML? Было бы неплохо.

Если вы хотите изменить эти файлы восстановления nuget в другой папке, вы можете попробовать использовать Directly.Build.props файл для управления им.

Решение

1) создать файл с именем Directly.Build.props в вашем проекте.

enter image description here

Затем добавьте их в этот файл:

<Project>
  <PropertyGroup>
    <MSBuildProjectExtensionsPath>$(ProjectDir)Binary\</MSBuildProjectExtensionsPath>
  </PropertyGroup>
</Project>

Примечание : свойство MSBuild может быть перезаписано только другим свойством. Это означает, что вы можете перезаписать папку obj как бинарную папку. Если вы хотите сгенерировать две папки Binary и Object , вы можете попробовать это:

a) При попытке выполнить шаг 1, а затем создать В своем проекте вы можете изменить свойство на $(ProjectDir)Object\ в Directly.Build.props файле, а затем снова перестроить. После этого вы увидите их обоих.

b) выполните задание на копирование, и, пожалуйста, запишите их в свой файл xxxx.csproj.

<Target Name="CopyNugetfiles" AfterTargets="Build">
    <ItemGroup>
      <MySourceFiles Include="$(ProjectDir)Binary\*.*"/>
    </ItemGroup>
      <Copy
          SourceFiles="@(MySourceFiles)"
          DestinationFolder="$(ProjectDir)Object\"/>
  </Target>

Надеюсь мог бы помочь вам.

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