在 TeamCity 构建和部署步骤中恢复 NuGet 包

Restore NuGet Package in TeamCity Build and Deploy Step

我在 TeamCity 中的构建和部署步骤未成功执行。 它正在显示

"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 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props."

以下是步骤过程日志:

[Step 1/1] WebApplication2.sln.teamcity: Build target: TeamCity_Generated_Build
[22:31:54][WebApplication2.sln.teamcity] TeamCity_Generated_Build
[22:31:54][TeamCity_Generated_Build] MSBuild
[22:31:54][MSBuild] WebApplication2.sln: Build default targets
[22:31:54][WebApplication2.sln] ValidateSolutionConfiguration
[22:31:54][ValidateSolutionConfiguration] Building solution configuration "Debug|Any CPU".
[22:31:54][WebApplication2.sln] Build
[22:31:54][Build] MSBuild
[22:31:54][MSBuild] WebApplication2\WebApplication2.csproj: Build default targets
[22:31:54][WebApplication2\WebApplication2.csproj] EnsureNuGetPackageBuildImports
[22:31:54][EnsureNuGetPackageBuildImports] Error
[22:31:54][Error] R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj(282, 5): 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 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.
[22:31:54][Step 1/1] MSBuild command line parameters contain "/property:" or "/p:". It is recommended to define System Property on Build Parameters instead.
[22:31:54][Step 1/1] Process exited with code 1
[22:31:54][Step 1/1] MSBuild output
[22:31:54][MSBuild output] Start MSBuild...
[22:31:54][MSBuild output] 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe' '"@R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity.msbuild.tcargs" R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity'
[22:31:54][MSBuild output] working dir = 'R:\teamcity\buildAgent\workcfc9181ba33f9ec'
[22:31:54][MSBuild output] Microsoft (R) Build Engine version 4.7.2046.0
[22:31:54][MSBuild output] [Microsoft .NET Framework, version 4.0.30319.42000]
[22:31:54][MSBuild output] Copyright (C) Microsoft Corporation. All rights reserved.
[22:31:54][MSBuild output] 
[22:31:54][MSBuild output] Build started 14/08/2017 10:31:54 PM.
[22:31:54][MSBuild output] Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity" on node 1 (TeamCity_Generated_Build target(s)).
[22:31:54][MSBuild output] Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity" (1) is building "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln" (2) on node 1 (default targets).
[22:31:54][MSBuild output] ValidateSolutionConfiguration:
[22:31:54][MSBuild output]   Building solution configuration "Debug|Any CPU".
[22:31:54][MSBuild output] Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln" (2) is building "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj" (3) on node 1 (default targets).
[22:31:54][MSBuild output] R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj(282,5): error : 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 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.
[22:31:54][MSBuild output] Done Building Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj" (default targets) -- FAILED.
[22:31:54][MSBuild output] Done Building Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln" (default targets) -- FAILED.
[22:31:54][MSBuild output] Done Building Project "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity" (TeamCity_Generated_Build target(s)) -- FAILED.
[22:31:54][MSBuild output] 
[22:31:54][MSBuild output] Build FAILED.
[22:31:54][MSBuild output] 
[22:31:54][MSBuild output] "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln.teamcity" (TeamCity_Generated_Build target) (1) ->
[22:31:54][MSBuild output] "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2.sln" (default target) (2) ->
[22:31:54][MSBuild output] "R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj" (default target) (3) ->
[22:31:54][MSBuild output] (EnsureNuGetPackageBuildImports target) -> 
[22:31:54][MSBuild output]   R:\teamcity\buildAgent\workcfc9181ba33f9ec\WebApplication2\WebApplication2.csproj(282,5): error : 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 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props.
[22:31:54][MSBuild output] 
[22:31:54][MSBuild output]     0 Warning(s)
[22:31:54][MSBuild output]     1 Error(s)
[22:31:54][MSBuild output] 
[22:31:54][MSBuild output] Time Elapsed 00:00:00.19
[22:31:55][Step 1/1] Process exited with code 1
[22:31:54][Step 1/1] Step Build and Deploy (MSBuild) failed

这是我在步骤中的命令行参数中使用的:

/p:Configuration=Debug
/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true
/p:VisualStudioVersion=14.0 
/p:PackageLocation="$(build.artifactstagingdirectory)\"

如果我遗漏了什么或在命令行参数中没有正确编码,请告诉我。

谢谢!

您忘记添加项目或解决方案文件。

  msbuild .\WebApplication2.sln /p:Configuration=Debug
 /p:OutputPath=bin
 /p:DeployOnBuild=True 
 /p:DeployTarget=MSDeployPublish

或者你的项目文件名中必须有空格,而不是你必须在周围添加引号。

首先在 TeamCity 工具中安装 NuGet.exe。

然后在代码编译之前添加另一个构建步骤以恢复项目中的 nuget 包。