当依赖项将.targets导入添加到.csproj时,NuGet Restore失败

por*_*e91 6 nuget

最近我在NuGet恢复时遇到了一个问题.我添加了项目依赖项(在本例中为PostSharp),然后启用了还原.我检查了源代码,但没有检查/ packages目录(因为我不需要......对吧!).当TeamCity或其他开发人员抓取源并运行MsBuild时,他们会收到以下错误:

C:\TeamCity\buildAgent\work\e374975c0264c72e\ProjectName\ProjectName.csproj(70, 3): error MSB4019: The imported project "C:\TeamCity\buildAgent\work\e374975c0264c72e\packages\PostSharp.2.1.5.1\tools\PostSharp.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Run Code Online (Sandbox Code Playgroud)

问题是,NuGet还没有运行恢复/下载PostSharp或它的.targets文件.这对我来说就像是一个NuGet错误,但是想知道其他人是否有同样的问题.

任何人都有这个问题或知道决议.是的,我可以签入/ packages目录,但为什么要使用NuGet呢?

Jam*_*ail 1

@porterhouse91,您是否检查过您的 csproj 文件以确保它已使用适当的构建目标进行设置?
我还没有尝试过新的内置包恢复功能,但我假设它的工作方式至少有点像互联网上以前的工作流程。如果是这种情况,在解决方案中启用包还原只会影响启用它时解决方案中的项目。如果您在启用包还原后向解决方案添加了新项目(具有 NuGet 依赖项),则需要再次启用它。另一种可能性:之前的工作流程涉及到需要签入 VCS 的 .nuget 文件夹,因此如果尚未签入,您可能需要签入该文件夹(如果内置的包恢复功能确实使用了这种方法)。

顺便说一句,如果这个答案有帮助,请感谢斯蒂芬·里奇——他让我为你尝试一下。