Source.sln имеет три проекта A.csproj, B.csproj и utils.csproj. И A, и B используют utils.csproj, но я преобразовал utils.csproj в пакет nuget, так что теперь A и B оба используют пакет utils nuget вместо ссылки на проект.
Следующее, что я делаю, это создаю пакет nuget из бота A и B. Итак, теперь у меня есть три пакета nuget
1.A.Nuget (использует utils.nuget)
2.B.nuget (использует utils.nuget)
3. Utils.nuget
Теперь у меня есть еще один файл Consumer.csproj, который использует все три в качестве ссылок на nuget.
Проблема в том, что и A.csproj, и B.csproj имеют файлы inputA.json и inputB.json, которые необходимы во время выполнения. Они вообще не меняются, поэтому лучше, чтобы они были упакованы с помощью пакета nuget
Мой вопрос: какой самый чистый способ их упаковки? Я подумал о нескольких вариантах, но ни один из них меня не удовлетворил:
- упакуйте их в папку /content utils.nuget, указав это в файле .csproj. Но проблема здесь в том, что код, читающий их из nuget, должен ссылаться на эти файлы из ../contents/inputA.json, чего нет в среде разработки. Они просто находятся в папке A.csproj/ и на них можно ссылаться как на «input.json». Таким образом, тот же код, который работает в Visual Studio (ссылается на этот файл как input.json), сломается, когда Consumer.csproj ссылается на A.nuget и utils.nuget
, если потребитель предоставит все эти файлы. Это может быть вариант, но я хочу избежать этого, если возможно. - Как-нибудь найдите способ скопировать эти файлы в папку /lib utils.nuget вместо /contents. В настоящее время я пытаюсь добиться этого, используя файл .nuspec. но не уверен, что это самое чистое решение
Могу ли я сделать что-нибудь получше в этой ситуации?
Подробнее здесь: https://stackoverflow.com/questions/585 ... et-package
Мобильная версия