У меня следующая ситуация.
Существует проект библиотеки классов, в котором 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.
Может кто-нибудь помочь мне, пожалуйста?