Visual Studio中的包和程序集之间的连接是什么?

时间:2013-10-18 21:14:59

标签: resharper assemblies nuget nuget-package visual-studio-2013

试图找出解决这个问题的解决方案(没有双关语):How can I get my Web API app to run again after upgrading to MVC 5 and Web API 2?,我意识到我已经把包和引用程序集之间的关系放在一边(没有多想过)

那么 关系是什么?我使用NuGet管理软件包,并通过项目的References文件夹下的上下文菜单管理程序集,但我仔细观察一下,其中一些文件似乎有1:1的对应关系。

例如,我的NuGet包管理器中有我的项目的实体框架,我也有一个EntityFramework的程序集引用。然而,这种对应并没有全面延伸。

毕竟,在选择了上下文菜单项(我不知道它是来自Visual Studio还是Resharper)后,“删除未使用的引用”,“我引用了14个项目;但是在NuGet包管理器中,我在“已安装的包|全部”表格中列出了30个包。

然而,当我突出显示时,他们所有都会运行“管理”按钮;似乎在其他项目中,他们用“绿色”复选标记“安装”了...... ???

1 个答案:

答案 0 :(得分:2)

包由1个或多个程序集组成。它还可以包含其他非汇编(也称为非dll文件),但这是查看它们的简单方法。

当您向Visual Studio项目添加“包”时,会发生一些事情。

  1. 创建了一些xml,说“此包是该项目的一部分(例如csproj)。
  2. 程序包所需的1个或多个程序集将在本地下载。
  3. 必要的引用会添加到您的项目中(例如csproj)。这个逻辑写在nuget包中。这模仿你做“右键单击/添加引用”。
  4. 可能会发生其他事情,但以上是简单版本。
  5. 了解包的好方法是

    获取MyPackage.nupkg文件。 将扩展名....从“.nupkg”重命名为“.zip”。 并查看.zip文件内容。

    你会看到像

    这样的文件夹
    .\content
    .\lib
    .\lib\net20
    .\lib\net40
    

    并寻找一些.ps1文件.......而且有时也会显示一些伏都教。

    这是简单的版本。但它会让你离开地面。