Я долго осматривался и не могу найти никакой информации об изменении управляемых ресурсов в сборках (обратите внимание, что я уже знаком с ресурсами Win32 и API для их изменения).
Мое приложение имеет ресурсы, которые должны обновляться конечным пользователем, и приложение будет распространяться как один исполняемый файл (поэтому я не могу просто использовать спутниковые сборки).
Я вижу несколько возможных обходных путей, но они кажутся хакерскими:
Первое - это использовать ILMerge: я бы создал новую сборку в памяти, которая содержит новые ресурсы, и использовал бы ILMerge, чтобы объединить его с исходной сборкой для формирования новой программы. Единственным недостатком является то, что ресурсы не могут быть обновлены или удалены.
Второе несколько похоже: будет .netmodule (из компилятора C #), который запускается против al.exe с ключом / embed, чтобы добавить ресурсы для формирования новой сборки. Недостатком является то, что ни один из ресурсов в исходной сборке не будет присутствовать.
Я склоняюсь к варианту ILMerge, но условия перераспределения неоднозначны. Лицензионное соглашение не ссылается на права на перераспределение (поэтому я предполагаю, что в этом обществе негативной свободы это разрешено), но на странице исследования Microsoft говорится, что перераспределение не разрешено (но оно двусмысленно сформулировано, насколько я могу судить, это может относиться к коммерческому перераспределению, что не относится ко мне, так как это некоммерческий проект GPL).
Спасибо