Замена файла, который является встроенным ресурсом в Visual Studio - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть приложение настольного типа в разработке, и часть требований заключается в том, что есть несколько файлов, которые должны быть частью программного обеспечения, а не отдельные файлы, которые поставляются с исполняемым файлом: инструкции пользователя, пояснения и лицензионное соглашение. , Понимая это, я установил для файлов Build Action значение Embedded Resource. Эти файлы не перечислены в содержимом Resources.resx в разделе «Свойства» проекта или в чем-либо подобном c.

Проблема, с которой я сталкиваюсь, заключается в том, что эти файлы были обновлены. Когда я заменяю файлы через проводник windows (следя за тем, чтобы я использовал одно и то же имя файла), я могу открыть файл в Visual Studio и увидеть обновленное содержимое. Однако, когда я собираю решение, запускаю отладку и пытаюсь открыть файлы по ссылкам, которые я разместил, я не получаю обновленное содержимое. Я получаю старый контент, а не новый материал. Я пропускаю шаг? Или я неправильно понимаю, как это работает, и как только для файла Build Action установлено значение Embedded Resource, вот и все, и если есть новые обновления содержимого файлов, то мне технически необходимо будет установить «новый» файл, настроенный как Embedded Resource?

Вот код, который я использую для открытия одного из файлов .docx на всякий случай, если он необходим:

String destFileName = Path.Combine(Path.GetTempPath(), _user_instructions);
        if (!File.Exists(destFileName))
        {
            Assembly assembly = Assembly.GetExecutingAssembly();
            using (Stream source = assembly.GetManifestResourceStream("My_Project_v2.docs.User_Instructions.docx"))
            {
                using (Stream destination = File.OpenWrite(destFileName))
                {
                    source.CopyTo(destination);
                }
            }
        }
        Process P = new Process
        {
            StartInfo = { FileName = "WINWORD.EXE", Arguments = destFileName }
        };
        P.Start();
const String _user_instructions = "7f0cf255-74ad-4665-adb6-8d6cdd77e4d3";

Было предложено создать уникальные направляющие для встроенные файлы.

Пожалуйста, дайте мне знать, если я могу что-то сделать, чтобы "обновить" содержимое файлов без создания нового "Встроенного ресурса"

...