回答
这是我在网上看到了简单的解决方案:
该解决方案也很方便的实现: http://code.google.com/p/costura/wiki/HowItWorksEmbedTask
简短的回答是肯定的,有一个叫做Assembly Linker (AL.exe)程序,将通过这种方式嵌入组件。它的主要用例是本地化,听起来就是你所需要的。如果是这样,它应该是直截了当的。
例如:
人/吨:LIB /embed:strings.de.resources /培养:德/out:MyApp.resources.dll
或
Al.exe工具/文化:EN-US /out:bin\Debug\en-US\HelloWorld.resources.dll /embed:Resources\MyResources.en-US.resources,HelloWorld.Resources.MyResources.en-US.resources/template:bin \ Debug \ HelloWorld.exe
This是它MSDN的与上述实施例和以上的例子漫游。你也可以阅读this blog post,这可以进一步解释它的用法。
另一种选择是嵌入其他组件作为EmbededResource。然后处理应用程序域AssemblyResolve,从这里您可以从资源中读取程序集并将其加载到运行时。类似以下内容:
public class HookResolver
{
Dictionary<string, Assembly> _loaded;
public HookResolver()
{
_loaded = new Dictionary<string, Assembly>(StringComparer.OrdinalIgnoreCase);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string name = args.Name.Split(',')[0];
Assembly asm;
lock (_loaded)
{
if (!_loaded.TryGetValue(name, out asm))
{
using (Stream io = this.GetType().Assembly.GetManifestResourceStream(name))
{
byte[] bytes = new BinaryReader(io).ReadBytes((int)io.Length);
asm = Assembly.Load(bytes);
_loaded.Add(name, asm);
}
}
}
return asm;
}
}
ILMerge将为您的应用程序创建一个exe文件。您可以从Microsoft获得download it。它将程序集合并在一起,并可以将它们内部化,以便将合并的类设置为内部。这是我用来多次创建单个文件的版本。将它集成到构建过程中非常简单。
尽管可以使用翻译吗? – Svish 2010-08-01 22:48:12
- 1. .net卫星组件?
- 2. 如何将我所有的定位卫星组合集成到EXE中?
- 3. 本地化卫星组件
- 4. Nant和卫星组件
- 5. 什么是卫星组件?
- 6. 卫星组件部署
- 7. 卫星组件 - 优缺点
- 8. 远程安装/部署的MSI/EXE文件:微星/ EXE文件
- 9. 如何在生成后将卫星组件复制到不同的文件夹?
- 10. 运行exe文件,除非使安装(嵌入DLL到EXE)
- 11. 嵌入exe文件到C#
- 12. 将config.ini嵌入exe文件
- 13. np.loadtxt()如何将TLE卫星txt文件读入Python
- 14. 如何在VC++ EXE程序中嵌入一个EXE文件
- 15. 嵌入文件到EXE文件在VB6
- 16. 如何生成EXE文件?
- 17. 如何将文件嵌入到exe文件中?
- 18. Visual Studio 2003和卫星组件
- 19. 将卫星组件添加到XAP中
- 20. 卫星组件,ASP.NET语言不变
- 21. WPF卫星组件不拾取
- 22. Visual Studio安装程序不包括卫星资源组装
- 23. 如何在安装项目中包含“卫星组装”语言dll?
- 24. 是否有可能从代码内生成卫星组件?
- 25. 从CSV生成卫星组件的问题(使用LocBaml)
- 26. 我可以更改默认的卫星组装文件夹结构吗?
- 27. 如何在卫星组件上使用反射?
- 28. 如何引用卫星组件中的字体资源?
- 29. 我们如何创建资源卫星组件
- 30. 嵌入.exe与普通文件
到博客文章的链接被打破。 – 2012-07-04 15:10:37
据我所知,al.exe可以用来创建卫星程序集,但我不认为它可以将多个文化资源合并到一个程序集中,这就是问题的要求。 – 2012-07-04 18:02:47