C#winform,嵌入大尺寸的声音文件或将其放在单独的文件夹中?

C#winform,嵌入大尺寸的声音文件或将其放在单独的文件夹中?,c#,winforms,embedded-resource,C#,Winforms,Embedded Resource,我有一个C#winform应用程序。它处理一些声音效果 我想知道是应该将它们嵌入到资源中,还是将它们放在应用程序目录的文件夹中 我不想让我的应用程序的用户弄乱他们。这就是为什么我不想把它们放在文件夹里,但是,我觉得有个问题。它们的总大小约为150兆,所以如果我要将它们嵌入,那么这个大小会影响我的应用程序的性能吗 如果是这样的话,将它们压缩成ZIP文件真的会有帮助吗?对此没有正确的答案,但这是我的$0.02 我认为你应该把它们分开,不要担心用户会弄乱它们。如果确实重要的是他们永远不会更改,则对文件

我有一个C#winform应用程序。它处理一些声音效果

我想知道是应该将它们嵌入到资源中,还是将它们放在应用程序目录的文件夹中

我不想让我的应用程序的用户弄乱他们。这就是为什么我不想把它们放在文件夹里,但是,我觉得有个问题。它们的总大小约为150兆,所以如果我要将它们嵌入,那么这个大小会影响我的应用程序的性能吗


如果是这样的话,将它们压缩成ZIP文件真的会有帮助吗?

对此没有正确的答案,但这是我的$0.02


我认为你应该把它们分开,不要担心用户会弄乱它们。如果确实重要的是他们永远不会更改,则对文件进行散列并存储散列,然后在他们更改时抛出错误。将它们包含在二进制文件中可能不会提高性能,并且可能会影响加载时间,但这会使exe变得更大,并且使更新和部署更加困难

您不应该在exe中嵌入150MB的声音文件

假设您将使用Windows Installer(MSI),将文件包括到安装程序中,并且您可以在调试模式和发布模式下播放文件:

string file = @"C:\TFS\DevProject\bin\Debug\Metallica.resources";
file = file.Replace("\bin\Debug\",string.Empty);
file = file.Replace(".resources",".mp3");
System.Diagnostic.Process.Start(file);
注意:资源扩展(而不是mp3等),因此用户不知道如何打开它们,除非他们做了相应的操作

如果使用ClickOnce部署,请执行类似的操作


在上不包括媒体文件

压缩将非常糟糕的音频文件-甚至WAV。