缺少 TFS msbuild Nuget 包
Posted
技术标签:
【中文标题】缺少 TFS msbuild Nuget 包【英文标题】:TFS msbuild Nuget packages are missing 【发布时间】:2016-03-22 17:53:13 【问题描述】:我创建了空的 WebAPI 项目并将项目签入到 TFS。我在构建时遇到以下错误:
错误:此项目引用的 NuGet 包在 这台电脑。使用 NuGet 包还原下载它们。更多 信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。这 丢失的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.
然后我从 .csproj 文件中删除了以下块,如先前主题中关于相同错误的建议:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is 0.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
从 .csproj TFS 构建中删除此 xml 部分后,构建成功。我想了解为什么 Visual Studio 2015 在 .csproj 中添加以下 Target 部分,这会导致 TFS 构建失败。
【问题讨论】:
【参考方案1】:Microsoft.Net.Compilers 包和 NuGet 添加了这些 Props 导入。
该包(从 1.1.1 开始)包含一组 MSBuild 属性,开发人员建议您的项目必须确保它可以按照他们想要的方式编译。
为确保在构建项目时将这些属性导入 MSBuild,在包安装期间编辑 csproj 文件以检查它们是否存在,或引发错误。
通常当您在构建过程中没有恢复 NuGet 包时会看到错误,如果您查看“错误”条件下的路径,Microsoft.Net.Compilers.1.0.0
文件夹在那里吗?
当您升级软件包(比如升级到 1.1.1)并且导入路径错误时,有时会发生这种情况。
【讨论】:
文件夹在那里,.props 文件也在那里。以上是关于缺少 TFS msbuild Nuget 包的主要内容,如果未能解决你的问题,请参考以下文章
TFS MSBuild 不为解决方案中的网站恢复 nugets
UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包
这个字符串中的非法字符是啥?我收到 MSBUILD :错误 MSB3095
UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包