如何引用由 MSBuild 中的“dnu 还原”生成的包



edit:对于那些有兴趣获得复制的人,该项目可在GitHub上找到。只需git clone源代码,cd 到目录并运行 MSBuild,然后(假设您安装了 DNU(您应该遇到错误。

原始帖子

正在尝试为我即将推出的库构建一个基于 .NET Core 的"现代 PCL"。我在引用项目中dnu restore生成的包时遇到问题。这是我csproj文件的相关部分:

<!-- Before building, use dnu to restore packages -->
<Target Name="BeforeBuild">
  <PropertyGroup>
    <ProjectJson>somedirproject.json</ProjectJson>
    <DnuRestore>dnu restore</DnuRestore>
    <PackagesDirectory>packages</PackagesDirectory>
  </PropertyGroup>
  <Exec Command="$(DnuRestore) $(ProjectJson) --packages $(PackagesDirectory)" />
</Target>

当我通过 msbuild 从命令行构建项目时,包还原似乎可以工作,但是当我构建项目时,它们实际上并没有被引用。例如,下面是一个 GitHub 要点,显示了项目中 MSBuild 的输出。

从日志中看到,编译器没有选择依赖项中的类型,并且我收到一堆"找不到类型"错误。我该如何解决这个问题?

作为参考,这是我project.json

{
    "dependencies": {
        "Shims.Xaml": "1.8.0"
    },
    "frameworks": {
        "net45": { }
    }
}

TL;DR:我从MSBuild跑dnu restore --packages blah。编译库时如何引用下载的 NuGet 包?

任何帮助将不胜感激。谢谢!

我只是简单地使用通配符 glob 来包含所有程序集:

<ItemGroup>
    <Reference Include="packages***.dll" />
</ItemGroup>

像魅力一样工作。

最新更新