将NuGet PackageStore与msbuild一起使用

将NuGet PackageStore与msbuild一起使用,msbuild,nuget,Msbuild,Nuget,我有一个简单的类库项目(带有Class1),并为解决方案启用了NuGet Package Restore 将restorepackages任务导入.csproj文件 我可以用它来编译这个项目 C:>msbuild myproj.csproj /t:compile 在添加包含的包之前,我可以成功调用restorepackages任务 C:>msbuild myproj.csproj /t:restorepackages 但是,添加任何包都会导致restorepackages任务失败

我有一个简单的类库项目(带有
Class1
),并为解决方案启用了NuGet Package Restore

restorepackages
任务导入.csproj文件

我可以用它来编译这个项目

C:>msbuild myproj.csproj /t:compile
在添加包含的包之前,我可以成功调用restorepackages任务

C:>msbuild myproj.csproj /t:restorepackages
但是,添加任何包都会导致restorepackages任务失败,并出现错误3

似乎使用错误的工作目录调用了NuGet任务,实际上,您可以通过删除添加到解决方案的NuGet.targets文件中的workingdir属性来修复该行为

按如下方式编辑任务:

   <Exec Command="$(RestoreCommand)"
           LogStandardErrorAsError="true"
           Condition="Exists('$(PackagesConfig)')"
           WorkingDirectory="$(NuGetToolsPath)" />

并删除工作目录:


在命令行msbuild和VS2010中,它似乎都能正常工作


是否有人知道此更改是否会损坏任何工具?

是否与问题“”有关

您是否检查了项目文件中的injected
SolutionDir
属性?可能是生成的相对路径不会指向实际的解决方案目录

<Exec Command="$(RestoreCommand)"
           LogStandardErrorAsError="true"
           Condition="Exists('$(PackagesConfig)')"
           />