Я не уверен, упускаю ли я что-то очевидное или просто не получаю политику ресурсов NuGet.Ресурсы (.resource.dll) по умолчанию исключаются при создании пакета, в соответствии с https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package:
Ресурсы, по сути, являются особым случаем.Когда пакет устанавливается в проект, NuGet автоматически добавляет ссылки на сборки в библиотеки DLL пакета, за исключением тех, которые называются .resources.dll, поскольку предполагается, что они являются локализованными сателлитными сборками (см. Создание локализованных пакетов).По этой причине избегайте использования .resources.dll для файлов, которые в противном случае содержат необходимый код пакета.
Однако в документе, указанном во фрагменте выше (https://docs.microsoft.com/en-us/nuget/create-packages/creating-localized-packages), указаны два способа создания локализованного кода).Пакеты NuGet:
Существует два способа создания локализованных версий библиотеки:
- Включение всех сборок локализованных ресурсов в один пакет.
- Создатьразделите локализованные спутниковые пакеты, следуя строгому набору соглашений.
Оба метода имеют свои преимущества и недостатки, как описано в следующих разделах.
Пока я получаю преимуществаи недостатки двух подходов, я не понимаю, почему нет возможности просто включить файлы ресурсов при создании пакета NuGet из проекта .csproj (т.е. использовать вариант 1.).
Моя цель состоит в том, чтобыуметь делать:
- Создать / обновить / дополнить проект библиотеки
foo.csproj
с локализованными ресурсами и собрать его - Создайте из него пакет NuGet с помощью
nuget.exe pack foo.csproj <Maybe some Parameters>
- Добавьте / обновите только что созданный пакет NuGet в другой проект
bar.csproj
и включите ресурсы foo.csproj
автоматически
Для меня это звучит так часто, что мне трудно представить, что это невозможно.Чего мне не хватает?