编辑:对于有兴趣获得repro的人,该项目在GitHub上可用here。只需git clone
个来源,进入目录并运行MSBuild,并且(假设你安装了DNU),你应该会遇到错误。
原帖
我正在努力建立一个现代PCL"基于.NET Core为我即将推出的库。我在从项目中引用dnu restore
生成的软件包时遇到问题。以下是我的csproj
文件的相关部分:
<!-- Before building, use dnu to restore packages -->
<Target Name="BeforeBuild">
<PropertyGroup>
<ProjectJson>some\dir\project.json</ProjectJson>
<DnuRestore>dnu restore</DnuRestore>
<PackagesDirectory>packages</PackagesDirectory>
</PropertyGroup>
<Exec Command="$(DnuRestore) $(ProjectJson) --packages $(PackagesDirectory)" />
</Target>
当我从命令行通过msbuild
构建项目时,包恢复似乎有效,但是当我构建项目时,它们实际上并没有被引用。例如,here's GitHub要点显示项目中MSBuild的输出。
正如您在日志中看到的那样,依赖项中的类型不会被编译器接收,而且我找不到一堆“未找到”类型的类型&#39;错误。我该如何解决这个问题?
供参考,here's我的project.json
:
{
"dependencies": {
"Shims.Xaml": "1.8.0"
},
"frameworks": {
"net45": { }
}
}
TL; DR:我从MSBuild运行dnu restore --packages blah
。在编译库时如何引用下载的NuGet包?
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
我只是使用通配符glob来包含所有程序集:
<ItemGroup>
<Reference Include="packages\**\*.dll" />
</ItemGroup>
像魅力一样工作。