Azure DevOps / Pipelines: установите свойства «Действие сборки» и «Копировать в выходной каталог» для файла содержимого в пакете NuGet. - PullRequest
0 голосов
/ 06 августа 2020

Я создаю пакет NuGet. net Standard 2.0, и я хочу развернуть файл конфигурации и пометить этот файл как «Содержимое» и «Копировать, если новее». Когда я устанавливаю пакет, файл конфигурации развертывается в root проекта, но для свойств заданы значения по умолчанию: «Нет» и «Не копировать». Я попытался решить проблему с помощью встроенного скрипта PowerShell в конвейерах azure:

- powershell: |
 $project= Get-Project Foo
 $project.ProjectItems.Item("foo.config").Properties.Item("CopyToOutputDirectory").Value = 2
 $project.ProjectItems.Item("foo.config").Properties.Item("BuildAction").Value = 2

, но получил следующую ошибку:

Get-Project: термин 'Get -Project 'не распознается как имя командлета, функции, файла сценария или работающей программы ...

Есть ли способ установить эти свойства в задаче конвейера?

Ответы [ 2 ]

0 голосов
/ 20 августа 2020

Решение: пайплайны тут не причем. Мне просто нужно было установить для свойства PackageCopyToOutput значение true в файле csproj:

  <ItemGroup>
    <Content Include="foo.config">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <PackageCopyToOutput>true</PackageCopyToOutput>
    </Content>
  </ItemGroup>
0 голосов
/ 07 августа 2020

Как сказано в документе Get-Project :

Команда Get-Project Доступна только в консоли диспетчера пакетов в Visual Studio на Windows.

В качестве обходного пути вы можете вручную отредактировать файл .csproj вашего проекта, включив в него файл конфигурации. См. Пример ниже. Добавьте следующие строки в ваш .csproj файл:

 <ItemGroup>
    <Content Include="content.config">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
 </ItemGroup>

Обновление:

Файл содержимого находится в root моей папки репо.

enter image description here

I have manually added below lines in csproj file.

enter image description here

The content.config file is successfully copied:

введите описание изображения здесь

...