C# C以编程方式嵌入文件

C# C以编程方式嵌入文件,c#,wpf,embedded-resource,C#,Wpf,Embedded Resource,我有一个要求,我希望用户选择一个文件,它将嵌入到我的应用程序 我知道如何手动嵌入资源,但我不知道当用户选择文件时是否有方法以编程方式嵌入资源。如果您的意思是实际将数据嵌入到“application.exe”中,如果没有第二个可执行文件来执行操作,这是不可能的。操作系统会锁定正在运行的可执行文件,以防止类似的修改 如果您100%希望将数据存储在可执行文件中,那么它必须位于文件的末尾。我试着将一些随机的二进制数据转储到一个可执行文件的末尾,它似乎运行得很好,但可能会有后果 你应该做的是在用户的机器上

我有一个要求,我希望用户选择一个文件,它将嵌入到我的应用程序


我知道如何手动嵌入资源,但我不知道当用户选择文件时是否有方法以编程方式嵌入资源。

如果您的意思是实际将数据嵌入到“application.exe”中,如果没有第二个可执行文件来执行操作,这是不可能的。操作系统会锁定正在运行的可执行文件,以防止类似的修改

如果您100%希望将数据存储在可执行文件中,那么它必须位于文件的末尾。我试着将一些随机的二进制数据转储到一个可执行文件的末尾,它似乎运行得很好,但可能会有后果

你应该做的是在用户的机器上创建和管理一个文件夹-可能直接在硬盘上,在用户帐户上,在线,或者在他们选择的文件夹中-并在那里存储文件。然后,在需要时加载它们


这种方法适用于所有资源。请指定要“嵌入”的资源,以及其他方法不适合的原因,以获得更好的帮助。

如果您的意思是实际将数据嵌入到“application.exe”中,则如果没有第二个可执行文件来执行该操作,这是不可能的。操作系统会锁定正在运行的可执行文件,以防止类似的修改

如果您100%希望将数据存储在可执行文件中,那么它必须位于文件的末尾。我试着将一些随机的二进制数据转储到一个可执行文件的末尾,它似乎运行得很好,但可能会有后果

你应该做的是在用户的机器上创建和管理一个文件夹-可能直接在硬盘上,在用户帐户上,在线,或者在他们选择的文件夹中-并在那里存储文件。然后,在需要时加载它们


这种方法适用于所有资源。请指定要“嵌入”的资源,以及其他方法不适合的原因,以获得更好的帮助。

不确定是否可能要反编译应用程序、嵌入资源并重新编译?如果您想以某种方式将文件放入exe中,没有动态编译是不可能的。为什么您认为需要让用户嵌入资源?您可以将文件单独保存在某个定义良好的位置,而无需操作exe,不是吗?通过“资源嵌入”这一概念,对您试图解决的预期用例进行概述,可以帮助这里的人们向您提供好的、有用的建议。您好,基本上我需要制作一个音乐播放器,用户只需添加一首歌曲,只需添加一次,所以我想我需要嵌入它。然而,根据这里的评论,我认为将文件复制到一个设置的位置并从那里加载会更容易、更好。感谢大家不确定是否有可能反编译应用程序,嵌入资源,然后重新编译?如果您想以某种方式将文件放入exe中,没有动态编译是不可能的。为什么您认为需要让用户嵌入资源?您可以将文件单独保存在某个定义良好的位置,而无需操作exe,不是吗?通过“资源嵌入”这一概念,对您试图解决的预期用例进行概述,可以帮助这里的人们向您提供好的、有用的建议。您好,基本上我需要制作一个音乐播放器,用户只需添加一首歌曲,只需添加一次,所以我想我需要嵌入它。然而,根据这里的评论,我认为将文件复制到一个设置的位置并从那里加载会更容易、更好。感谢allexpanding on second Executive:您可以使用内置的Emit或CSharpCodeProvider动态创建其中一个。我可以想到的一个结果是增加了可执行文件的加载时间。我不知道像Windows这样的操作系统是如何加载可执行文件的,但我的第一个猜测是将整个过程加载到RAM中。扩展第二个可执行文件:您可以使用内置的Emit或CSharpCodeProvider动态创建其中一个。我能想到的一个结果是增加可执行文件的加载时间。我不知道像Windows这样的操作系统是如何加载可执行文件的,但我的第一个猜测是将整个过程加载到RAM中。