如何创建exe文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建exe文件相关的知识,希望对你有一定的参考价值。
参考技术A 1.操作提前:电脑安装WinRAR软件。将用来制作的资料放在文件夹内,然后用Ctrl+A全选该文件夹下的文件。2.单击鼠标右键,然后选择“添加到压缩文件”选项。
3.在打开的对话框“常规”选项卡中,单击“压缩方式”下拉框选择合适的压缩方式,并将压缩选项下的“创建自解压格式压缩文件”选项勾选,则有“压缩文件名”框中的文件扩展名变成“.exe”。
4.切换到“高级”选项卡,单击“自解压选项”按钮。
5.打开“高级自解压选项”设置对话框。在“常规”选项卡,“解压路径”文本框中设置文件被自动解压到什么位置,如“D:XX”。
6.其他选项卡,可以根据实际来设置,然后依次单击“确定”两次,可生成可执行文件。
如何在单个EXE中嵌入多语言* .resx(或* .resources)文件?
有很多教程如何创建多语言RESX文件以及如何使用AL.exe创建附属程序集,但我还没有找到工作示例如何在单个EXE文件中嵌入RESX / Resources / satellite-DLL文件并分发整个多语言应用程序就像这样的EXE。
我试图使用ilmerge.exe,但它看起来不适用于具有相同名称的多个DLL(文化卫星DLL具有相同的名称,最初驻留在以文化命名的不同子目录中)。
我也不知道如何创建ResourceManager实例来使用嵌入式资源。
我的目标是在封闭的,预定义的语言集之间实现动态切换。我需要类/方法,它将获得文化字符串(即“de-DE”),资源名称(即“CancelText”)并基于嵌入的resx / resource / dll返回翻译文本。
我正在使用VS2008,请注意resx / resource files属性表中需要“构建操作”的设置。工作代码示例或指向教程项目的链接将是最好的。
我的解决方案:程序只包含一个默认语言资源文件(resx)。所有其他语言都从.resx编译为.resources并作为资源文件嵌入。重要!我已更改扩展名,因为“.resources”被识别为特殊类型的资源,因此我的法语文件名为“PIAE.LangResources.fr”。
以下是检索已翻译字符串的简单代码(应使用资源缓存值进行改进):
internal static string GetString(string str, string lang)
{
if (string.IsNullOrEmpty(str)) throw new ArgumentNullException("empty language query string");
if (string.IsNullOrEmpty(lang)) throw new ArgumentNullException("no language resource given");
// culture-specific file, i.e. "LangResources.fr"
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("PIAE.LangResources."+lang);
// resource not found, revert to default resource
if (null == stream)
{
stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("PIAE.Properties.LangResources.resources");
}
ResourceReader reader = new ResourceReader(stream);
IDictionaryEnumerator en= reader.GetEnumerator();
while (en.MoveNext())
{
if (en.Key.Equals(str))
{
return en.Value.ToString();
}
}
// string not translated, revert to default resource
return LangResources.ResourceManager.GetString(str);
}
你找不到它,因为它不是.NET框架的工作方式。 .NET期望在特定命名位置的卫星DLL(以它包含的资源的语言命名的iow目录。例如,de
,de-DE
,chs
,......)。如果你不这样做,.NET将无法应用它的魔力(根据当前的UI文化自动选择正确的资源:Thread.CurrentThread.CurrentUICulture
)。
使用这个程序,它适合我:EXEPack
你只需要在每次编译时手动完成,不确定是否有命令工具。
我使用了上面的GetString
方法。文章Can't load a manifest resource with GetManifestResourceStream()描述了如何正确地将您的资源检索为流对象。之后,一切正常。
以上是关于如何创建exe文件的主要内容,如果未能解决你的问题,请参考以下文章