关于在 C#中无法静态库引用的解决方法

在VS中用C#写了个类库,后面想转成静态库发现没有直接的方法,原来在C++中可以,而C#中不支持。

但是有时候程序引用C#编写的动态库觉得用户体验不好太累赘,想要简单只发一个exe可执行程序给用户就好,该怎么解决?

经过我研究,找到了如下的方法:(VS编译器)

  1. 在VS中安装Nuget扩展
  2. 打开要静态化的EXE项目
  3. 打开Nuget为目标EXE工程安装Costura.Fody。
  4. 重新构建项目,完成。这时候的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

原文地址:https://www.cnblogs.com/linyilong/p/4864224.html