C#单文件应用

网上有许多关于单文件打包的帖子,虽能拓展思路,质量却是一般。

这里只讲最简单的一种。

首先,将dll添加到项目中,并将它们的“生成操作”改为“嵌入的资源”。

其次,参考《CLR Via C#》给出的解决方案,添加几行代码,如下:

1. 先添加一个程序集加载失败的事件。

// 添加程序集解析事件
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => LoadFromResource(args.Name);

2. 根据文件名加载程序集(dll)。

/// <summary>
/// 根据要加载的资源项名,加载对应的程序集。
/// </summary>
/// <param name="argsName">要解析的项的名称。</param>
/// <returns>返回对应项的程序集。</returns>
private Assembly LoadFromResource(string argsName)
{
    string dllName = new AssemblyName(argsName).Name + ".dll";

    var assem = Assembly.GetExecutingAssembly();
    var resourceName = assem.GetManifestResourceNames().FirstOrDefault(rn => rn.EndsWith(dllName));
    if (resourceName == null) return null; // 没找到程序集。

    using (Stream stream = assem.GetManifestResourceStream(resourceName))
    {
        byte[] assemblyData = new byte[stream.Length];
        stream.Read(assemblyData, 0, assemblyData.Length);
        return Assembly.Load(assemblyData);
    }
}

完。

时间: 2024-10-10 10:01:16

C#单文件应用的相关文章

WebUploader插件上传大文件单文件和多文件JAVA版使用总结

一.使用webuploader插件的原因说明 被现在做的项目坑了. 先说一下我的项目架构Spring+struts2+mybatis+mysql 然后呢.之前说好的按照2G上传就可以了,于是乎,用了ajaxFileUpload插件,因为之前用图片上传也是用这个,所以上传附件的时候就直接拿来用了 各种码代码,测试也测过了,2G文件上传没问题,坑来了,项目上线后,客户又要求上传4G文件,甚至还有20G以上的..纳尼,你不早说哦... 在IE11下用ajaxFileUpload.js插件上传超过4G的

Struts2单文件上传原理及示例

一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式. 2.multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里. 3.text/plain:这种方式主要适用于直接通过表单发送邮件的

struts2文件上传(单文件/批量添加)

单文件上传 1.导入上传需要jar包 2.建立UploadAction file是jsp页面的输入项的name相同,后面的两个属性的名称也是有规律的:(inputName+FileName/ContentType) 1 public class UploadAction extends ActionSupport{ 2 3 private static final long serialVersionUID = 1L; 4 private File file;//上传文件的本身 5 privat

系统垃圾清理利器CCleaner v5.30.6063绿色单文件版(增强版)

系统垃圾清理利器CCleaner现已更新至v5.30.6063,此次更新为Edge.IE浏览器提供了更好的清理功能,更新了Windows Explorer MRU清理功能,同时改善了应用程序中的SSD检测.5.0版全新Modren UI界面设计,简洁大气!内部框架大优化,性能大提升!支持主动防御及监控! CCleaner是梨子公司Piriform最为著名广受好评的软件,系统垃圾清理工具,免费的系统清理优化和隐私保护工具,也是该公司主打和首发产品!它体积小巧.运行速度极快,具有强大的自定义清理规则

Radmin Server-3.5 完美绿色破解版(x32 x64通用) 第三版 + 单文件制作方法

Radmin Server v3.5 汉化破解绿色版(x32 x64通用) 第三版 下载链接: http://pan.baidu.com/s/1dFmb9fF 密码: 95gd 2016年7月8日更新第三版1.修复在单文件中系统位宽判断错误的问题,修复自动增加防火墙白名单命令错误的问题,增加卸载时清除注册表设置信息2.增加单文件制作方法和单文件成品3.修改默认设置的方法有所改变,请查看下方的:二.如何修改默认安装设置? 4.修复启动时不加载 mirror driver 的问题(不加载这个会导致远

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件

【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引

这篇指引主要介绍如何使用从在线下载工具下载下来的Cocos2d-JS的单文件引擎. 你有可能下载了下面三个版本中的一个: Cocos2d-JS Full Version: 完整版引擎包含Cocos2d-JS引擎的所有功能特性以及所有扩展,使用这个版本可以帮助你发掘Cocos2d-JS令人惊艳的创造力和可能性.你可以从官方文档首页中查看Cocos2d-JS所支持的特性列表. Cocos2d-JS Lite Version: 精简版本只包含Cocos2d-JS的核心特性,它的优势是稳定,轻量,简单易

Defraggler2.15.742汉化单文件(磁盘碎片整理)

Defraggler2.15.742汉化单文件(磁盘碎片整理工具)由Black Hawk 汉化软件语言,绿色单文件版,去掉菜单在线帮助,软件下方在线帮助.检查更新.Defraggler中文版是一个轻量级的整理工具,但它可以快速高效的整理某个磁盘.文件夹甚至一个文件.也可以对硬盘进行查错,Defraggler对系统资源占用极小.无需添加系统服务,用起来也实在是太简单. 百度下载:http://pan.baidu.com/s/1o6wS8Bo 百度指导:http://dwz.cn/spjIn

sublime搜索和替换-单文件搜索

Searching To open the search panel for the active file, press Ctrl + F. Someoptions and actions available through this panel can be controlled from thekeyboard: Toggle Regular Expressions Alt + R Toggle Case Sensitivity Alt + C Toggle Exact Match Alt

TP5单文件、多文件上传

文件上传可以直接引用框架自定义的文件上传类 use think\File; 这里封装一个文件上传的model,以便重复利用 UploadFiles.php 1.控制器层 use app\admin\model\UploadFiles;    // 使用文件上传model 2.model层 <?phpnamespace app\admin\model;use think\Model;       // 使用Modeluse think\File;           // 使用文件上传类use t