Я наконец-то понял это, поэтому я отвечаю на свой вопрос в надежде, что люди, которые борются в будущем, смогут это понять.
Используя ссылку , предоставленную @ Jimi для доступа к ресурсам в SharpDevelop и прокрутки вниз до раздела «Внедрение файлов напрямую» показывает контекст, в котором можно получить доступ к встроенному ресурсу.Здесь следует отметить, что тип возвращаемого значения GetManifestStream (string) является System.IO.Stream объектом.Это важно, так как нам нужно, чтобы SoundPlayer как-то принял объект System.IO.Stream.Это можно сделать двумя способами, используя перегруженный конструктор или свойство класса SoundPlayer.Как определено страницей MSDN для класса SoundPlayer .
Однако, когда я тестировал это, я не мог получить звук для воспроизведения.Продолжая свое исследование, я обнаружил, что Assembly.GetExecutingAssembly () имеет доступный метод с именем «GetManifestResourceNames ()», который возвращает строковый массив всех ресурсов и их корректирующие имена для доступа к ним.Я смог увидеть результат, создав метку формы Windows с именем «ExecutingAssem» и используя инструкции из DotNetPerls для создания статического метода с именем «ConvertStringArrayToStringJoin ()», но изменив его разделитель с «.»к "|"чтобы лучше прочитать ресурсы.
После этого в окончательной программе будет показан список встроенных ресурсов со строкой: ExecutingAssem.Text = ConvertStringArrayToStringJoin (Assembly.GetExecutingAssembly (). GetManifestResourceNames ());
И окончательная программа выглядит так: Программа, показывающая все ресурсы в углу
Интересно, что ресурс песни (Resonance) на самом деле не является частью пространства имен,или MainForm ... а скорее его собственное имя в качестве заголовка ресурса.
После обнаружения этой недостающей информации мне нужно было изменить программу с чтения диска на чтение потока манифеста.Используя перегруженный конструктор, который использует объект System.IO.Stream в качестве параметра, а не строку в расположении файла, я изменил место инициализации объекта проигрывателя для использования этого конструктора.
SoundPlayer player =new SoundPlayer(Assembly.GetExecutingAssembly().GetManifestResourceStream("Resonance"));
Наконец, финальное приложение воспроизвело песню с возможностью переместить файл .exe в другое место и по-прежнему иметь возможность воспроизводить ту же песню без необходимости, чтобы Resonance.wav находился в той же директории.