解决方案恢复NuGet包失败(仅在命令行上)



我最近改用NuGet最新推荐的方法,即使用' packages '。项目的Json '文件:

{
  "dependencies": {
    "Newtonsoft.Json": "9.0.1",
    "RestSharpSigned": "105.2.3"
  },
  "frameworks": {
    "net45": {}
  },
  "runtimes": {
    "win": {}
  }
}

这在我的本地visual studio环境中工作得很好,但是CI服务器无法再构建项目。

奇怪的是,我可以看到包被成功地恢复为解决方案,但在构建时,MSBuild不知道这些dll在哪里,所有对它们的引用都失败:

Package Restore succeeded:

09:48:07 Updating NuGet.exe to 3.4.4-rtm-final.
09:48:07 Update successful.
09:48:08 MSBuild auto-detection: using msbuild version '14.0' from 
         'C:Program Files (x86)MSBuild14.0bin'.
09:48:09 Restoring packages for C:jenkins-test...ClientClient.NET45.project.json...
09:48:10 Installing RestSharpSigned 105.2.3.
09:48:10 Installing Newtonsoft.Json 9.0.1.
09:48:13 Committing restore...
09:48:13 Committing restore...
09:48:13 C:jenkins-test...ClientClient.NET45.csproj
09:48:13 Restore completed in 3715ms.09:48:13 Installed:
09:48:13     2 package(s) to C:jenkins-test...ClientClient.NET45.csproj

构建失败:

09:48:14 Microsoft (R) Build Engine version 14.0.23107.0
...
09:48:14 Project "C:jenkins-test...Client.sln" (1) is building 
         "C:jenkins-test...ClientClient.NET45.csproj" (2) on node 1 (default targets).
09:48:14 PrepareForBuild:
09:48:14   Creating directory "binDebugnet45".
09:48:14   Creating directory "objDebug".
09:48:14 CoreCompile:
09:48:14   C:Program Files (x86)MSBuild14.0bincsc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /doc:binDebugnet45Client.xml /define:DEBUG;TRACE;NET45 /highentropyva+ /reference:"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5mscorlib.dll" /reference:"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5System.Core.dll" /reference:"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5System.dll" /reference:"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5System.Runtime.Serialization.dll" /reference:"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5WindowsBase.dll" /debug+ /debug:full /filealign:512 /optimize- /out:objDebugClient.dll /ruleset:"C:Program Files (x86)Microsoft Visual Studio 14.0Team ToolsStatic Analysis Tools\Rule SetsMinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:library /utf8output APIAPI.Authentication.cs APIAPI.Configuration.cs APIAPI.Parameters.cs APIAPI.Requests.cs APIAPI.Utilities.cs APIAuthenticationAccessTokenStatus.cs APIAuthenticationAuthenticationStatus.cs APIAuthenticationBasicAuthenticationToken.cs APIAuthenticationIAccessToken.cs APIAuthenticationOauthAccessToken.cs "APICustom ExceptionsAPIRequestException.cs" "APICustom ExceptionsNotWaitingException.cs" APIExtensionMethodsExtensionMethods.IAPIResourceView.cs APIExtensionMethodsExtensionMethods.IAPIResource_WithDataEndpoint.cs APIExtensionMethodsExtensionMethods.IAPIType.cs APIExtensionMethodsExtensionMethods.Reference.cs APIExtensionMethodsExtensionMethods.Rest.cs APIExtensionMethodsExtensionMethods.Rest.InferredType.cs APIJsonConvertersAnalyzeReContractResolver.cs APIJsonConvertersAnalyzeReJsonConverter.cs APIJsonConvertersComplexNestedObjectConverter.cs APIJsonConvertersDerivedResourceCreationConverter.cs APIJsonConvertersJsonCreationConverter.cs "APIJsonConvertersJsonCreationConverter[T].cs" APIJsonConvertersJsonSerializerExtensionMethods.cs APIJsonConvertersLayerViewCreationConverter.cs APIJsonConvertersPortfolioViewSerializer.cs APIJsonConvertersReferenceConverter.cs APIJsonConvertersUriConverter.cs APILargeDataUploadAdaptiveBufferedBytesProducer.cs APILargeDataUploadBufferedBytes.cs APILargeDataUploadBufferedBytesFromStreamProducer.cs APILargeDataUploadBufferedBytesResizer.cs APILargeDataUploadBufferedBytesToStringProducer.cs APILargeDataUploadBufferProducerException.cs APILargeDataUploadGZipBufferedBytesProducer.cs "APILargeDataUploadInternal ClassesLargeDataUpload.AsyncParameters.cs" "APILargeDataUploadInternal ClassesLargeDataUpload.Exceptions.cs" "APILargeDataUploadInternal ClassesLargeDataUpload.HandleUploadInSessionStrategy.cs" "APILargeDataUploadInternal ClassesLargeDataUpload.Parameters.cs" "APILargeDataUploadInternal ClassesLargeDataUpload.StatusReponse.cs" APILargeDataUploadIProducerConsumerBuffer.cs APILargeDataUploadLargeDataUpload.cs APILargeDataUploadProducerConsumerBuffer.cs APIRestIRestResponse.cs APIRestMethod.cs APIRestParameter.cs APIRestParameterType.cs APIRestResponseStatus.cs APIRestRestResponse.cs "APIRestRestResponse[T].cs" AttributesAPITypeAliasAttribute.cs AttributesGreaterThanAttribute.cs AttributesLessThanAttribute.cs AttributesNotEmptyAttribute.cs AttributesNotNullAttribute.cs AttributesNumericValidationAttribute.cs AttributesPropertyAlias.cs AttributesResolvedInViews.cs AttributesServerGenerated.cs AttributesServerHasDefault.cs AttributesServerHasDefaultEmptyObject.cs AttributesValidationAttribute.cs ModelAPITypesAPIResource_WithDataEndpoint.cs ModelAPITypesAPIType_Polymorphic.cs ModelAPITypesInterfacesIAPIResource_WithDataEndpoint.cs ModelAPITypesInterfacesIAPI_Polymorphic.cs ModelAPITypesInterfacesIStoredAPIResource.cs ModelAPITypesOptionsResponse.cs "ModelAPITypesREST EntitiesResourceStringBuilder.cs" "ModelAPITypesREST EntitiesSubResourcesCommandSubResource.cs" "ModelAPITypesREST EntitiesSubResourcesDataSubResource.cs" "ModelAPITypesREST EntitiesSubResourcesLargeDataSubResource.cs" "ModelAPITypesREST EntitiesSubResourcesResourceEndpoint.cs" "ModelAPITypesREST EntitiesSubResourcesSubResource[T].cs" ModelAPITypesServerError.cs ModelAPITypesStoredAPIResource.cs ModelAPITypesStoredAPIResource_Polymorphic.cs ModelCommonAPIResource.cs ModelCommonAPIResourceViewAggregationMethod.cs ModelCommonAPIResourceViewBaseAPIResourceView.BackAllocations.cs ModelCommonAPIResourceViewBaseAPIResourceView.CoMetrics.cs ModelCommonAPIResourceViewBaseAPIResourceView.cs ModelCommonAPIResourceViewBaseAPIResourceView.ExceedanceProbabilities.cs ModelCommonAPIResourceViewBaseAPIResourceView.TailMetrics.cs ModelCommonAPIResourceViewIAPIResourceView.cs ModelCommonAPIResourceViewState.cs ModelCommonAPIResourceViewTargetCurrencyDefault.cs ModelCommonAPIResourceViewYELTSimulationResult.cs ModelCommonAPIResourceViewYLTSimulationResult.cs ModelCommonAPIType.cs ModelCommonCollectionResponseCollectionResponseMeta.cs "ModelCommonCollectionResponseCollectionResponse[T].cs" "ModelCommonCollectionResponseICollectionResponse[T].cs" ModelCommonInterfacesIAPIResource.cs ModelCommonInterfacesIAPIType.cs ModelCommonMonetaryUnit.cs "ModelCommonPerspectiveInternal ClassesPerspective.BasicPerspective.cs" "ModelCommonPerspectiveInternal ClassesPerspective.CustomizablePerspective.cs" "ModelCommonPerspectiveInternal ClassesPerspective.LossNetOfTermsPerspective.cs" ModelCommonPerspectivePerspective.cs ModelCommonPerspectivePerspective.Enum.cs ModelCommonPerspectivePerspective.Static.cs ModelCommonReferenceIReference.cs "ModelCommonReferenceIReference[T].cs" ModelCommonReferenceReference.cs "ModelCommonReferenceReference[T].cs" ModelCommonReinstatement.cs ModelCommonTaskStatus.cs ModelMetricsBackAllocationsBackAllocations.cs ModelMetricsCoMetricsCoMetrics.Context.cs ModelMetricsCoMetricsCoMetrics.cs ModelMetricsExceedanceProbabilitiesExceedanceProbability.Context.cs ModelMetricsExceedanceProbabilitiesExceedanceProbability.cs ModelMetricsTailMetricsTailMetrics.Context.cs ModelMetricsTailMetricsTailMetrics.cs ModelResourcesAgent.cs ModelResourcesAnalysisProfile.cs "ModelResourcesAnalysisAbstract Base ClassesAnalysis.cs" ModelResourcesAnalysisVendorPortfolioAnalysis.cs ModelResourcesAnalysisVendorTreatyAnalysis.cs "ModelResourcesDistributionsAbstract Base ClassesContinuousDistribution.cs" "ModelResourcesDistributionsAbstract Base ClassesCustomDistribution.cs" "ModelResourcesDistributionsAbstract Base ClassesDiscreteDistribution.cs" "ModelResourcesDistributionsAbstract Base ClassesDistribution.cs" ModelResourcesDistributionsBinomialDistribution.cs ModelResourcesDistributionsCustomFrequencyDistribution.cs ModelResourcesDistributionsCustomSeasonalityDistribution.cs ModelResourcesDistributionsCustomSeverityDistribution.cs ModelResourcesDistributionsDiracDistribution.cs ModelResourcesDistributionsLogNormalDistribution.cs ModelResourcesDistributionsNegativeBinomialDistribution.cs ModelResourcesDistributionsNormalDistribution.cs ModelResourcesDistributionsParetoDistribution.cs ModelResourcesDistributionsPoissonDistribution.cs ModelResourcesDistributionsUniformDistribution.cs ModelResourcesDistributionsUniformIntDistribution.cs ModelResourcesEventCatalog.cs ModelResourcesExchangeRateProfileExchangeRateProfile.cs "ModelResourcesExchangeRateProfileInternal ClassesExchangeRateProfile.ExchangeRateDateRule.cs" "ModelResourcesExchangeRateProfileInternal ClassesExchangeRateProfile.ExchangeRateLatestRule.cs" "ModelResourcesExchangeRateProfileInternal ClassesExchangeRateProfile.ExchangeRateSelectionRule.cs" ModelResourcesExchangeRateTable.cs ModelResourcesFile.cs "ModelResourcesLayersAbstract Base ClassesLayer.cs" "ModelResourcesLayersAbstract Base ClassesLayer_WithLossSets.cs" "ModelResourcesLayersAbstract Base ClassesLayer_WithTerms.cs" "ModelResourcesLayersAbstract Base ClassesLayer_XL.cs" ModelResourcesLayersAggregateQuotaShare.cs ModelResourcesLayersAggXL.cs ModelResourcesLayersCatXL.cs ModelResourcesLayersFilter.cs ModelResourcesLayersGeneric.cs ModelResourcesLayersIndustryLossWarranty.cs ModelResourcesLayersInterfacesILayer.cs ModelResourcesLayersInterfacesILayer_WithAggregateTerms.cs ModelResourcesLayersInterfacesILayer_WithLossSets.cs ModelResourcesLayersInterfacesILayer_WithOccurrenceTerms.cs ModelResourcesLayersInterfacesILayer_WithReinstatements.cs ModelResourcesLayersInterfacesILayer_WithTerms.cs ModelResourcesLayersNested.cs ModelResourcesLayersQuotaShare.cs ModelResourcesLayersSurplusShare.cs ModelResourcesLayerViewsILayerView.cs "ModelResourcesLayerViewsILayerView[T].cs" ModelResourcesLayerViewsLayerViews.cs "ModelResourcesLayerViewsLayerView[T].cs" "ModelResourcesLossFiltersAbstract Base ClassesAttributeFilter.cs" "ModelResourcesLossFiltersAbstract Base ClassesComparisonFilter.cs" "ModelResourcesLossFiltersAbstract Base ClassesExpressionFilter.cs" "ModelResourcesLossFiltersAbstract Base ClassesLossFilter.cs" ModelResourcesLossFiltersAndFilter.cs ModelResourcesLossFiltersAnyFilter.cs ModelResourcesLossFiltersAnyOfFilter.cs ModelResourcesLossFiltersGTFilter.cs ModelResourcesLossFiltersLTFilter.cs ModelResourcesLossFiltersOrFilter.cs ModelResourcesLossFiltersRangeFilter.cs "ModelResourcesLossSetsAbstract Base ClassesLossSet.cs" "ModelResourcesLossSetsAbstract Base ClassesLossSet_WithCurrency.cs" "ModelResourcesLossSetsAbstract Base ClassesLossSet_WithData.cs" ModelResourcesLossSetsELTLossSet.cs ModelResourcesLossSetsInterfacesILossSet_Simulated.cs ModelResourcesLossSetsInterfacesILossSet_WithEventCatalog.cs ModelResourcesLossSetsInterfacesILossSet_WithSeasonality.cs "ModelResourcesLossSetsInternal ClassesBinaryYELTConverter.cs" "ModelResourcesLossSetsInternal ClassesInuringTerms.cs" "ModelResourcesLossSetsInternal ClassesLossSetProfile.cs" "ModelResourcesLossSetsInternal ClassesLossType.cs" "ModelResourcesLossSetsInternal ClassesNestedLayerLossSet.Perspective.cs" "ModelResourcesLossSetsInternal ClassesTreatyLossSet.Treaty.cs" ModelResourcesLossSetsLoadedLossSet.cs ModelResourcesLossSetsNestedLayerLossSet.cs ModelResourcesLossSetsParametricLossSet.cs ModelResourcesLossSetsPortfolioLossSet.cs ModelResourcesLossSetsTreatyLossSet.cs ModelResourcesLossSetsYELTLossSet.cs ModelResourcesLossSetsYLTLossSet.cs "ModelResourcesOptimizationViewInternal ClassesOptimizationView.Candidate.cs" "ModelResourcesOptimizationViewInternal ClassesOptimizationView.CandidateParameter.cs" "ModelResourcesOptimizationViewInternal ClassesOptimizationView.DomainEntry.cs" "ModelResourcesOptimizationViewInternal ClassesOptimizationView.Result.cs" ModelResourcesOptimizationViewOptimizationView.cs "ModelResourcesPortfoliosAbstract Base ClassesPortfolio.cs" ModelResourcesPortfoliosDynamicPortfolio.cs ModelResourcesPortfoliosStaticPortfolio.cs ModelResourcesPortfolioViewPortfolioView.cs ModelResourcesSimulationSimulation.cs ModelResourcesSimulationStaticSimulation.cs UtilitiesFormatting.cs UtilitiesIfNotNullExtensionMethod.cs UtilitiesReflectionUtilities.cs "UtilitiesSimulation MonitorAsyncRequestMonitor.cs" "UtilitiesSimulation MonitorSimulationStatus.cs" "UtilitiesSimulation MonitorSimulationStatusMonitor.cs" UtilitiesTypeResolver.cs PropertiesAssemblyInfo.cs PropertiesSettings.Designer.cs "C:Temp.NETFramework,Version=v4.5.AssemblyAttributes.cs"
09:48:23 APIAPI.Configuration.cs(9,20): error CS0246: The type or namespace name
'RestSharp' could not be found (are you missing a using directive or an assembly reference?)
...
09:48:23 APIExtensionMethods.IAPIType.cs(2,7): error CS0246: The type or namespace name
'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
...
09:48:25     0 Warning(s)
09:48:25     258 Error(s)
09:48:25 
09:48:25 Time Elapsed 00:00:01.27

这是我现在的构建脚本:

nuget.exe update -Self
nuget.exe restore Client.sln
MSBuild.exe Client.sln /p:Configuration=Release

在切换到软件包之前从未出现过问题。恢复解决方案的Json方法(需要从csproj文件中删除引用)

据我所知,从NuGet引用的dll没有被链接到构建中(它们没有出现在真正长的CoreCompile行中)。

我是否需要在CI构建脚本中更改某些内容以使其再次工作?

为了让MSBuild从项目中解析程序集。它使用自定义的MSBuild任务,该任务安装在机器上,因此它对MSBuild全局可用。

在您的本地机器上,这些将位于目录:

C:Program Files (x86)MSBuildMicrosoftNuGet

我相信这些文件是由Visual Studio 2015安装的。

还有一个Microsoft.NuGet.ImportBefore。目录下的props文件:

C:Program Files (x86)MSBuild14.0ImportsMicrosoft.Common.PropsImportBefore

还有一个Microsoft.NuGet.ImportAfter。目标目录文件:

C:Program Files (x86)MSBuild14.0ImportsMicrosoft.Common.TargetsImportAfter

NuGet .props和.targets文件就是这样导入到MSBuild中,并使每个项目都可以使用的。

最新更新