Как заставить файлы содержимого NuGet появляться в выходной папке проекта, который ссылается на библиотеку классов, которая ссылается на пакет NuGet? - PullRequest
0 голосов
/ 04 мая 2020

У меня следующая ситуация.

Существует проект библиотеки классов, в котором XSD-файл содержит содержимое. На него ссылается другой проект библиотеки классов, на который в свою очередь ссылается проект службы Windows. Когда все построено, это работает отлично, и XSD попадает в выходную папку службы Windows.

Теперь один из моих коллег решил использовать ту же библиотеку классов (ту, что с XSD). и он превратил его в пакет NuGet. Поскольку он не использовал XSD, это хорошо сработало для него. Однако я столкнулся с проблемой, что при использовании пакета NuGet XSD больше не появлялся в выходной папке.

С тех пор я изменил файл .nuspe c, как показано ниже.

<?xml version="1.0" encoding="utf-8" ?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <projectUrl>valif url in this spot</projectUrl>
    <description>$description$</description>
    <releaseNotes></releaseNotes>
    <copyright>$copyright$</copyright>
    <tags>Tegsis, TerraIndex</tags>
    <dependencies>
      <dependency id="FLC.Soil.Tegsis.Common" version="2020.3.3.2" />
      <dependency id="log4net" version="2.0.8" />
    </dependencies>
    <contentFiles>
      <!-- Include Assets as Content -->
      <files include="**/*" buildAction="Content" copyToOutput="true" flatten="false" />
    </contentFiles>
  </metadata>
  <files>
    <file src="dsFieldProject.xsd" target="content/any/any" />
    <file src="dsFieldProject.xsd" target="contentFiles/any/any" />
  </files>
</package>

Это работает до такой степени, что XSD появляется в выходной папке библиотеки классов, которая ссылается на пакет NuGet. Однако он все еще отсутствует в папке вывода службы Windows.

Мне пока не удалось решить эту проблему. Я видел предложения использовать файл .targets, чтобы он добавил XSD в библиотеку классов, на которую ссылаются, но не смог заставить это работать.

Я все еще что-то делаю неправильно при добавлении XSD в пакет NuGet? Является ли файл .targets решением, и я просто делаю это неправильно?

Поскольку все это работало до того, как библиотека классов была превращена в пакет NuGet, я бы предположил, что она также должна работать впоследствии без необходимости добавьте пакет NuGet в качестве ссылки в сервис Windows.

Может кто-нибудь помочь мне, пожалуйста?

...