关于在 C#中无法静态库引用的解决方法
在VS中用C#写了个类库,后面想转成静态库发现没有直接的方法,原来在C++中可以,而C#中不支持。
但是有时候程序引用C#编写的动态库觉得用户体验不好太累赘,想要简单只发一个exe可执行程序给用户就好,该怎么解决?
经过我研究,找到了如下的方法:(VS编译器)
- 在VS中安装Nuget扩展
- 打开要静态化的EXE项目
- 打开Nuget为目标EXE工程安装Costura.Fody。
- 重新构建项目,完成。这时候的exe可以直接发给对方而不需要附带发dll了。
具体步骤如下:
安装NuGet扩展
要使用NuGet首先需要安装它(在安装了MVC3的系统上已自动安装了NuGet)
1. 点击 工具-->扩展管理器(R)...-->右上角搜索框输入NuGet

2. 点击 NuGetPackage Manager 项上面的下载按钮开始下载NuGet

3. 下载完成后出现安装页面,点安装开始安装

4. 很快安装完成,然后点击关闭完成整个安装

5. 安装完后NuGet暂时不能用,需要重新启动下VS才行,重启后完毕后打开 扩展管理器(R)... 在已安装的扩展里可以看到NuGet Package Manager已经安装好了

使用NuGet下载需要的类库
1. 打开NuGet管理界面

2. 出现如下界面,可以在里面找自己想要的类库也可以在右上角搜索里面输入关键字查找自己想要的类库,找到合适自己的类库后点install进行安装

3. 这里我们选择安装Json.Net,点击安装好出现组件下载界面

4. 下载完成后会出现提示将类库安装到什么项目,这里我们选择安装到TestConsole项目

5. 安装完成后可以看到已经安装的Josn.Net显示一个已安装的小对勾

6. 打开项目引用可以看到我们刚选择的类库Newtonsoft.Json已经自动添加到项目引用中

参考地址:http://kb.cnblogs.com/page/143190/
http://www.cnblogs.com/instance/p/4863811.html
关于在 C#中无法静态库引用的解决方法的更多相关文章
- 在Linux中创建静态库.a和动态库.so
转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...
- 在iOS中创建静态库
如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315). =========================================== ...
- 在VS中编译C++静态库以及使用的方法
1.编译静态库 // add.h #pragma once class Add { public: Add(void); ~Add(void); int add(int a,int b); }; #i ...
- VS2010中添加lib库引用
VS2010中添加lib库引用: 1 菜单 项目---> 属性--->配置属性-->链接器---->输入---附加依赖项, 加入库名,如: my_API.lib; 或是在c ...
- 在Linux中创建静态库和动态库
我们通常把一些公用函数制作成函数库,供其它程序使用. 函数库分为静态库和动态库两种. 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库. 动态库在程序编译时并不会被连接到目标代码中 ...
- 在Linux中创建静态库和动态库 (转)
我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态 库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...
- ios 静态库冲突的解决办法
最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了.发现网上也有不少人遇到一样的问题,但是能找到的数量有限的解决办法写得都不详细,很难让人理 ...
- 记一次SpringBoot 开发中所遇到的坑和解决方法
记一次SpringBoot 开发中所遇到的坑和解决方法 mybatis返回Integer为0,自动转型出现空指针异常 当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Inte ...
- 编程中遇到的Python错误和解决方法汇总整理
这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下 开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...
随机推荐
- python-网络编程-01
我们常说的计算机网络通信,值得是两台,或者多台计算机间,进行数据传输. 从计算机网络发展至今,人们使用了很多协议,但是最常用的还是tcp/ip协议,实际上这是一组协议. 当然使用python做网络编程 ...
- C++ POST方式访问网页
bool PostContent(CString strUrl, const CString &strPara, CString &strContent, CString &s ...
- [办公软件][2]screenToGif
https://github.com/NickeManarin/ScreenToGif/wiki/help 下载: .Net Framework 4.6.1 https://www.microso ...
- tornado中文教程
http://docs.pythontab.com/tornado/introduction-to-tornado/ch2.html#ch2-1 python的各种库的中文教程 http://docs ...
- js 抓取页面数据
数据抓取 主要思路和原理 在根节点document中监听所有需要抓取的事件 在元素事件传递中,捕获阶段获取事件信息,进行埋点 通过getBoundingClientRect() 方法可获取元素的大小和 ...
- Struts2的文件上传与下载
<一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...
- hibernate缓存详解
hibernate中提供了两级缓存,一级缓存是Session级别的缓存,它属于事务范围的缓存,该级缓存由hibernate管理,应用程序无需干预:二级缓存是SessionFactory级别的缓存,该级 ...
- java面试题之Error和Exception的区别
从概念角度分析: Error:程序无法处理的系统错误,编译器不做检查: Exception:程序可以处理的异常,捕获后可能恢复: 总结:前者是程序无法处理的错误,后者是可以处理的异常. 从责任角度分析 ...
- C++ 错误解决 —— internal compiler error
问题: g++ 编译时,报错: g++: internal compiler error: Killed (program cc1plus) 出错原因: 出错的原因是(虚拟机)运行内存不足,而大量te ...
- 【NOIP2016练习】T3 tree (树形DP)
题意:一棵有N个结点的树,每个节点上有权值c[i] 需要选出若干结点,对于任意结点他的所有祖先都被选取且选取总个数不能超过lim 在此前提下使权值和最大 n,lim<=3000 思路:WA了1次 ...