0

我正在向 AppHarbor 推送 NancyFx 解决方案,但由于 AppHarbor 没有恢复包,因此无法构建。

不过,包还原是在我的解决方案文件中定义的。

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{313EB245-8733-45FC-82B3-6C1404446A50}"
ProjectSection(SolutionItems) = preProject
    .nuget\NuGet.Config = .nuget\NuGet.Config
    .nuget\NuGet.exe = .nuget\NuGet.exe
    .nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject

这是 AppHarbor 日志的相关部分。

Build started 11/21/2012 8:50:07 AM.
 1>Project "D:\temp\cqcytykz.jkt\input\src\xxx\xxx.sln" on node 1 (default targets).
 1>ValidateSolutionConfiguration:
     Building solution configuration "Release|Mixed Platforms".
 1>Project "D:\temp\cqcytykz.jkt\input\src\xxx\xxx.sln" (1) is building "D:\temp\cqcytykz.jkt\input\src\xxx\xxx\xxx.csproj" (2) on node 1 (default targets).
 2>PrepareForBuild:
     Creating directory "obj\Release\".
   ResolveAssemblyReferences:
     Primary reference "Nancy".
 2>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Nancy". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [D:\temp\cqcytykz.jkt\input\src\xxx\xxx\xxx.csproj]

有人知道缺少什么吗?

4

1 回答 1

2

csproj 中是否有引用 NuGet.targets 文件的部分?您刚刚显示了解决方案中的项目,项目需要对目标文件的引用才能真正知道在构建项目时要执行什么。

NuGet 支持并不是 MSBuild/VS 所知道的任何特别之处(尽管 VS 确实有一个扩展来使某些事情变得更容易)。这些东西(如果你使用 VS 扩展“启用包还原”功能应该插入)是告诉 MSBuild 它需要在构建期间运行外部命令,然后恢复包的内容:-)

于 2012-11-23T18:43:57.457 回答