我广泛使用XmlSerializer,而不是让.NET在运行时生成必要的序列化程序集,我想提前生成这些程序集并将它们与我的应用程序捆绑在一起。我能够使用Sgen在构建时生成这些程序集。此外,我必须为每个要序列化的数组类型分别运行Sgen(使用sgen/t:Foo[])。最后,我使用ILMerge将数组类型序列化类合并到Foo.XmlSerializers.dll程序集中。我已使用ildasm验证Foo.XmlSErializers.dll实际上包含所有合并的类。在运行时,.NET成功地从Foo.XmlSerializers.dll加载FooSerializer,而无需调用csc并生成临
我知道我可以将PDB与DLL文件合并,但我正在尝试对XML文档文件执行相同的操作。这应该是可能的,因为您没有带有.NET程序集的.xml文件,但您在IDE中有文档。如何做到这一点? 最佳答案 ILMerge有一个命令行选项也可以合并XML文档/xmldocs。 关于.net-如何使用ILMerge将XML文档文件与DLL合并?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/180
我用C#编写了一个项目,该项目使用大量图像、Milk模型和openGL,我想将所有内容打包到一个exe中,以便将其上传到我的网站。现在我得到了一个依赖于其他文件(如jpg等)的exe。我试过使用ILMerge但无法正常工作。有更简单的解决方案吗?谢谢。 最佳答案 您可以将所有文件/图像作为嵌入式资源放入exe。参见HowtoembedandaccessresourcesbyusingVisualC#(此链接当前404s) 关于c#-如何将所有文件编译成一个exe?,我们在StackOve
我正在尝试一些探索性的东西:假设我有一个库“coolproject”,它依赖于one.dll、two.dll和three.dll。我想使用ILMerge将coolproject与one.dll和two.dll结合,但不是three.dll。合并完成后,我应该有coolproject.dll和three.dll。无论我打算在何处使用coolproject.dll,我还必须引用three.dll这可能吗?每当我尝试时,我都会得到。不允许未解析的程序集引用:三个。我通过设置“CopyLocal”=false来省略three.dll。[编辑]:执行如下:ILMerge/targetplatfo
我正在尝试将两个程序集合并为一个程序集,它运行良好。然而,当我也尝试合并*.pdb文件时,出现错误:Accesstothepath"F:\Fentec\Businessplan\trunk\Ausgabe\Debug\modules\Planrechnung\Planrechnung.pdb"isdenied.如果我使用/ndebug选项来跳过合并*.pdb文件,它工作正常。但是当然不能在调试时加载符号。起初我以为在postbuild事件中调用ILMerge时,Planrechung.pdb正在使用并被锁定。我也尝试关闭VS2010并从命令行调用ILMerge,但结果保持不变。我检查了
我有一个带有引用dll的C#解决方案(也是具有相同.Net版本的C#)。当我构建解决方案并运行生成的exe时,没有合并exe和引用的dll,一切正常。现在我想将它们合并到一个exe中。我运行ILMerge,一切似乎都正常。我尝试执行exe,它似乎运行良好,直到它尝试反序列化在引用的dll中定义的对象。using(Streamfstream=newFileStream(file_path,FileMode.Open)){BinaryFormatterbf=newBinaryFormatter();returnbf.Deserialize(fstream)asControlledRuleC
我为我的log4net日志记录对象的初始化创建了一个包装类,以便更容易地在ThreadContext中建立自定义属性。这发生在我与许多其他有用函数一起建立的类库中。为了加入所有不同的库,我还使用“/internalize”开关向ILMerge添加了一个AfterBuild目标。ILMerge所针对的库内对此初始化方法的所有引用似乎都工作正常。但是,当我在其他地方引用这个合并库时。我的实现会引发保护级别错误。我已尝试向可选的排除(/internalize:excludes.txt)文件中添加各种内容,但这似乎不起作用。excludes.txt示例:log4net.Configlog4ne
我正在寻找一个开源工具来将多个.NET程序集合并为一个程序集。 最佳答案 检查ILRepack,它允许合并符号文件、xml文档、App.config等。它是开源的,基于Cecil.在一个名为ILRepack-BuildTasks的项目中还有NAnt和MSBuild集成。. 关于c#-是否有适用于Mono的ILMerge等效工具?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/36
我有一个服务dll,它有一个引用system.web.odata(来自microsoft.aspnet.odata.5.9.0)服务DLL具有一种裸露的方法,该方法采用了odata.delta<>编译时,此服务DLL会被编译时,因此具有嵌入数据的“版本”。现在,消费应用程序也会引用相同的ODATA,但是,它来自Corext,全球化的缓存。但是,当消费应用程序试图调用具有odata.delta<>gt;的方法时参数,它抱怨它不能从onventingapp.odata.delta转换为servicecel.odata.delta。我将如何确保参数使用odata.delta的
我编写了一个利用2个第3方dll的程序,我想使用ILMerge将两个dll合并到1个可执行文件中。我试过使用命令行:ilmerge/target:winexe/out:final.exenormal.exe3rd_party_dll_1.dll3rd_party_dll_2.dll但这会返回这个错误:`Couldnotloadassemblyfromthelocation'C:\Users\...'Skippingandprocessingtrestofarguments.`我是否遗漏了什么或者这些dll是否有可能无法合并? 最佳答案