代码之家  ›  专栏  ›  技术社区  ›  kudlatiger

visual studio在哪里引用实际的nuget引用的dll?

  •  3
  • kudlatiger  · 技术社区  · 6 年前

    我补充说 Autofac 库使用 nuget 我在我的推荐信中看到了它,如下所示。

    enter image description here

    但是当我点击autofac的属性[f4]时,它会在visual studio中显示空的属性框。

    enter image description here

    而且,我不明白 AutoFac 文件夹下 packages 文件夹。

    enter image description here

    我只在中看到包引用 .csproj 文件。那么它如何定位dll呢?实际的dll在哪里?我知道它会自动进来 箱子 . 怎么会这样?

    enter image description here

    主要问题:在本地我可以构建解决方案,但在tfs构建服务器中相同的解决方案失败。找不到nuget引用。!在哪里可以找到dll引用?或者如何把它推到tfs?

    4 回复  |  直到 6 年前
        1
  •  1
  •   Andy Li-MSFT    6 年前

    假设您使用的是tfs 2015,那么nuget restore任务名称应该是 NuGet Installer 下面哪个 Package 添加任务时。

    因此,如果您已经在构建机中安装了nuget,那么您可以直接使用该任务。 你也可以定制 nuget.exe 对于tfs 2015构建——只需指定 Path to NuGet.exe

    你可以参考 Mummy's blog- Custom nuget.exe for TFS 2015 build 详情。

    enter image description here

        2
  •  2
  •   magicandre1981    6 年前

    你用新的 Package Reference nuget文件的来源 stored into a cache :

    解决方案本地包文件夹不再使用包现在 根据位于的用户缓存解析 %userdata%\.nuget ,而不是 特定于解决方案的包文件夹。这使得packagereference 通过使用 您工作站上的软件包。

        3
  •  1
  •   Daniel Mann    6 年前

    增加一个 NuGet Restore 任务,以便还原包。

        4
  •  1
  •   Christian.K    6 年前

    正如@magicandre1981所解释的 PackageReference 样式包引用(如 package.config -样式,另请参见 this 有关这些差异的更多背景信息,如果您不知道的话,这些包并不位于每个解决方案包文件夹中,而是位于中心文件夹中(默认情况下 %USERPROFILE%\.nuget\packages )尽管您可以使用 NUGET_PACKAGES 环境变量(也可以作为 TFS Build variable ,因为它们是作为构建步骤的环境变量提供的)。

    此外,在visual studio中看不到路径,因为dll的实际路径是在构建时确定的。你可以在你的 <project-dir>\obj\project.assets.json 文件(在 restore 目标/操作),但在msbuild日志中只能看到完整路径(例如,当实际调用 csc.exe 可执行/c编译器或 ResolveAssembyReferences -任务)。

    注意,对于.net core,即“sdk样式”项目,路径实际上显示在属性中(与“package”节点下的节点中的实际dll一样)。

    PackageReference in SDK-style projects

    我们只能假设packagereference在“旧”项目中的集成尚未完全完成(如果有的话)。

    要比较“旧的”非sdk样式项目中的packagereference,请执行以下操作:

    PackageReference in non-SDK-style/old project