如何从 MSBuild 引用“dnu restore”生成的包?
How to reference packages generated by `dnu restore` from MSBuild?
编辑: 对于那些有兴趣获得复制品的人,该项目可在 here GitHub 上获得。只是 git clone
源代码,cd 到目录和 运行 MSBuild,并且(假设你已经安装了 DNU)你应该会遇到错误。
原版Post
我正在尝试为即将推出的库构建一个基于 .NET Core 的 "modern 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
从命令行构建项目时,包恢复似乎有效,但是当我构建项目时,它们实际上并没有被引用。例如,here's GitHub gist 显示项目上 MSBuild 的输出。
正如您从日志中看到的那样,编译器未选取依赖项中的类型,我收到了一堆 'type not found' 错误。我该如何解决这个问题?
供参考,here's我的project.json
:
{
"dependencies": {
"Shims.Xaml": "1.8.0"
},
"frameworks": {
"net45": { }
}
}
TL;DR: 我 运行 dnu restore --packages blah
来自 MSBuild。编译我的库时如何引用下载的 NuGet 包?
如有任何帮助,我们将不胜感激。谢谢!
我通过简单地使用通配符 glob 来包含所有程序集来做到这一点:
<ItemGroup>
<Reference Include="packages\**\*.dll" />
</ItemGroup>
工作得很好。
编辑: 对于那些有兴趣获得复制品的人,该项目可在 here GitHub 上获得。只是 git clone
源代码,cd 到目录和 运行 MSBuild,并且(假设你已经安装了 DNU)你应该会遇到错误。
原版Post
我正在尝试为即将推出的库构建一个基于 .NET Core 的 "modern 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
从命令行构建项目时,包恢复似乎有效,但是当我构建项目时,它们实际上并没有被引用。例如,here's GitHub gist 显示项目上 MSBuild 的输出。
正如您从日志中看到的那样,编译器未选取依赖项中的类型,我收到了一堆 'type not found' 错误。我该如何解决这个问题?
供参考,here's我的project.json
:
{
"dependencies": {
"Shims.Xaml": "1.8.0"
},
"frameworks": {
"net45": { }
}
}
TL;DR: 我 运行 dnu restore --packages blah
来自 MSBuild。编译我的库时如何引用下载的 NuGet 包?
如有任何帮助,我们将不胜感激。谢谢!
我通过简单地使用通配符 glob 来包含所有程序集来做到这一点:
<ItemGroup>
<Reference Include="packages\**\*.dll" />
</ItemGroup>
工作得很好。