编辑:对于那些有兴趣获得一个repro的人来说,这个项目可以在GitHub上获得这里。只需git clone源代码,cd进入目录并运行MSBuild,并且(假设您已经安装了DNU ),您就应该命中错误。
原始邮政
我正试图为我即将到来的库构建一个基于.NET核心的“现代PCL”。我在引用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从命令行构建项目时,包恢复似乎有效,但是当我构建项目时,它们实际上并没有被引用。例如,下面是是一个GitHub gist,显示项目上MSBuild的输出。
正如您可以从日志中看到的那样,依赖项中的类型没有被编译器捕获,而且我得到了一堆‘类型未找到’的错误。我该怎么解决这个问题?
供参考,下面是 my project.json
{
"dependencies": {
"Shims.Xaml": "1.8.0"
},
"frameworks": {
"net45": { }
}
}TL;DR:,我从MSBuild管理dnu restore --packages blah。如何在编译库时引用下载的NuGet包?
任何帮助都将不胜感激。谢谢!
发布于 2016-02-17 23:29:23
我通过简单地使用通配符glob来包含所有程序集来做到这一点:
<ItemGroup>
<Reference Include="packages\**\*.dll" />
</ItemGroup>很有魅力。
https://stackoverflow.com/questions/35468223
复制相似问题