C# 如何将文件添加到exe
我有一个播放声音的程序,但如果我在另一台计算机上运行它,它会说找不到该文件。如何将该文件附加到exe上,这样当有人播放exe时,它仍然可以播放?您可以查看该文件的属性,并在“复制到输出目录”下选择“复制到较新的目录”C# 如何将文件添加到exe,c#,file,embed,exe,C#,File,Embed,Exe,我有一个播放声音的程序,但如果我在另一台计算机上运行它,它会说找不到该文件。如何将该文件附加到exe上,这样当有人播放exe时,它仍然可以播放?您可以查看该文件的属性,并在“复制到输出目录”下选择“复制到较新的目录” 当准备使用安装程序发布EXE时,您可以将其与c#程序打包您可以查看文件的属性,并在“复制到输出目录”下选择“复制(如果更新)” 当您准备使用安装程序发布EXE时,您可以将其与c#程序打包。打包项目文件时,请在项目文件夹中创建一个文件夹以保存内容数据(文本-图片-视频-声音..等
当准备使用安装程序发布EXE时,您可以将其与c#程序打包您可以查看文件的属性,并在“复制到输出目录”下选择“复制(如果更新)”
当您准备使用安装程序发布EXE时,您可以将其与c#程序打包。打包项目文件时,请在项目文件夹中创建一个文件夹以保存内容数据(文本-图片-视频-声音..等)然后为代码提供目标文件的相对路径,而不是绝对路径 例如:代替
string path = "c:\Projects\ProjectFolder\FileName";
这样做:
string currentDir = AppDomain.CurrentDomain.BaseDirectory;
string fullPath = currentDir + "ContentFolder/FileName.mp3(or whatever)";
编辑:
AppDomain.CurrentDomain.BaseDirectory
将是应用程序根目录,而不是bin子文件夹-这可能是您通常想要的。在客户端应用程序中,它将是包含主可执行文件的目录 打包项目文件时,请在项目文件夹中创建一个文件夹以保存内容数据(文本-图片-视频-声音..等),然后为代码提供目标文件的相对路径,而不是绝对路径 例如:代替
string path = "c:\Projects\ProjectFolder\FileName";
这样做:
string currentDir = AppDomain.CurrentDomain.BaseDirectory;
string fullPath = currentDir + "ContentFolder/FileName.mp3(or whatever)";
编辑:
AppDomain.CurrentDomain.BaseDirectory
将是应用程序根目录,而不是bin子文件夹-这可能是您通常想要的。在客户端应用程序中,它将是包含主可执行文件的目录 如果您无法更改源代码,我建议 它是关于创建新的exe存档,其中包含旧的exe+要合并的新文件。当您调用新的exe时,它会运行旧的exe,但也会包含您的音乐文件,您可以按照步骤4和5进行操作
我建议,如果您无法更改源代码,请将exe和音乐文件放在同一文件夹中,并通过该方法压缩它们 它是关于创建新的exe存档,其中包含旧的exe+要合并的新文件。当您调用新的exe时,它会运行旧的exe,但也会包含您的音乐文件,您可以按照步骤4和5进行操作
将exe和music文件放入同一文件夹,并通过该方法压缩它们如果要将wave文件嵌入程序,请转到项目属性-->资源-->选择音频作为类型,然后选择添加资源并选择音频文件。这将把音频文件添加到您的资源目录中。完成此操作后,您可以右键单击Resources文件夹中的文件,选择Properties并将构建操作更改为
Embedded Resource
要访问该文件,请执行以下操作:
System.Media.SoundPlayer sp = new System.Media.SoundPlayer(Properties.Resources.tada);
sp.Play();
如果要将wave文件嵌入到程序中,请转到项目属性-->资源-->选择音频作为类型,然后选择添加资源并选择音频文件。这将把音频文件添加到您的资源目录中。完成此操作后,您可以右键单击Resources文件夹中的文件,选择Properties并将构建操作更改为
Embedded Resource
要访问该文件,请执行以下操作:
System.Media.SoundPlayer sp = new System.Media.SoundPlayer(Properties.Resources.tada);
sp.Play();
通常情况下,你不会。您将其添加为资源并打包(可能带有安装程序)我想知道这是否可行(制作一个独立的exe,带有声音),如果您希望单文件解决方案为您提供详细的分步说明。通常情况下,您不会。您将其添加为资源并打包(可能使用安装程序)我想知道这是否可行(制作一个独立的exe,带有声音),如果您希望单文件解决方案为您提供详细的分步说明。+0:
CurrentDirectory
是非常危险的方法。请务必搜索有关如何从输出(bin和like)文件夹中读取文件的类似问题。实际上,有很多方法可以完成这项工作,感谢您的建议,因为我需要修改差异,而不是写我脑海中出现的第一个答案+1。感谢编辑——BaseDirectory
是获取文件位置的更可靠的方法(因为exe可以在任何当前目录下启动,包括)。+0:CurrentDirectory
是非常危险的方法。请务必搜索有关如何从输出(bin和like)文件夹中读取文件的类似问题。实际上,有很多方法可以完成这项工作,感谢您的建议,因为我需要修改差异,而不是写我脑海中出现的第一个答案+1。感谢您的编辑——BaseDirectory
是获取文件位置的更可靠的方法(因为exe可以与任何当前目录一起启动,包括)。只是link并不是一个很好的答案格式。你需要对它进行评论或提供链接摘要,这足以理解它所说的内容。+1现在:创建安装程序的合理方法。。。关于帖子:别忘了从帖子中删除签名-你已经把它作为用户名了。。。并检查是否需要“重复执行步骤4和步骤5两次”。谢谢@AlexiLevenkov,现在我可以发表评论了。你很慷慨。只是链接不是一个很好的回答形式。你需要对它进行评论或提供链接摘要,这足以理解它所说的内容。+1现在:创建安装程序的合理方法。。。关于帖子:别忘了从帖子中删除签名-你已经把它作为用户名了。。。并检查是否需要“重复执行步骤4和步骤5两次”。谢谢@AlexiLevenkov,现在我可以发表评论了。你很慷慨。