Azure devops 在不在Azure DevOps上工作的项目中将文件从NuGet包复制到OutDir
我只有Azure DevOps的问题 在VisualStudio2019中,当我右键单击并构建时,它工作得很好。 如果我在本地使用CMD的dotnet构建,它也可以正常工作 Nuget软件包如下所示: csprojAzure devops 在不在Azure DevOps上工作的项目中将文件从NuGet包复制到OutDir,azure-devops,nuget-package,build-pipeline,Azure Devops,Nuget Package,Build Pipeline,我只有Azure DevOps的问题 在VisualStudio2019中,当我右键单击并构建时,它工作得很好。 如果我在本地使用CMD的dotnet构建,它也可以正常工作 Nuget软件包如下所示: csproj <ItemGroup> <None Include="Utilities.Api.xml" Pack="true" PackagePath="File"> <CopyToO
<ItemGroup>
<None Include="Utilities.Api.xml" Pack="true" PackagePath="File">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="build\Utilities.Api.props" Pack="true" PackagePath="build"></None>
</ItemGroup>
<ItemGroup>
<None Update="Utilities.Api.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
在生成之后,我有一个发布步骤
- task: DotNetCoreCLI@2
condition: and(succeeded(), not(variables.RunSonar))
displayName: Publish and zip artifacts
inputs:
command: publish
publishWebProjects: false
arguments: '--configuration $(buildConfiguration) --no-build --output $(Build.ArtifactStagingDirectory)'
packDirectory: '$(Build.ArtifactStagingDirectory)'
zipAfterPublish: true
projects: |
src/**/*.Api.csproj
!src/Test/**/*.csproj
这开始让人非常沮丧:)来自Azure Devops构建步骤的日志:
- task: DotNetCoreCLI@2
displayName: Build
timeoutInMinutes: 0
inputs:
command: build
projects: src/**/*.csproj
arguments: '--configuration $(BuildConfiguration) /p:reportanalyzer=true /p:TreatWarningsAsErros=$(warnAsErrors)'
2020-10-01T08:49:43.2627436Z [command]C:\ag1\_w\_tool\dotnet\dotnet.exe build C:\ag1\_w\16\s\src\Users.Api\Users.Api.csproj "-dl:CentralLogger,\"C:\ag1\_w\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.175.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\"*ForwardingLogger,\"C:\ag1\_w\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.175.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\"" --configuration Release /p:reportanalyzer=true /p:TreatWarningsAsErros=True
2020-10-01T08:49:43.6522165Z Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
2020-10-01T08:49:43.6522892Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-10-01T08:49:43.6523107Z
2020-10-01T08:49:44.1610081Z Determining projects to restore...
2020-10-01T08:49:44.7025130Z All projects are up-to-date for restore.
2020-10-01T08:49:45.5019137Z Users.DomainServices.Public -> C:\ag1\_w\16\s\src\Users.DomainServices.Public\bin\Release\netcoreapp3.1\barfoo.Users.DomainServices.Public.dll
2020-10-01T08:49:45.6746889Z Users.Infrastructure.Public -> C:\ag1\_w\16\s\src\Users.Infrastructure.Public\bin\Release\netcoreapp3.1\barfoo.Users.Infrastructure.Public.dll
2020-10-01T08:49:45.8373672Z Users.DomainServices -> C:\ag1\_w\16\s\src\Users.DomainServices\bin\Release\netcoreapp3.1\barfoo.Users.DomainServices.dll
2020-10-01T08:49:46.1381732Z Users.Infrastructure -> C:\ag1\_w\16\s\src\Users.Infrastructure\bin\Release\netcoreapp3.1\barfoo.Users.Infrastructure.dll
2020-10-01T08:49:46.3793169Z Users.Api -> C:\ag1\_w\16\s\src\Users.Api\bin\Release\netcoreapp3.1\barfoo.Users.Api.dll
2020-10-01T08:49:46.3979376Z
2020-10-01T08:49:46.3980068Z Build succeeded.
2020-10-01T08:49:46.3980389Z 0 Warning(s)
2020-10-01T08:49:46.3981116Z 0 Error(s)
好的,我找到了解决办法。这是有道理的 这种行为的原因是我只有BeforeBuild的目标。我还必须为发布添加一个目标 我的道具文件现在看起来是这样的,它可以在本地和Azure DevOps上工作
<Project>
<Target Name="CopyFilesToProject" BeforeTargets="BeforeBuild">
<ItemGroup>
<SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
</ItemGroup>
<Copy
SourceFiles="@(SourceScripts)"
DestinationFolder="$(OutDir)" />
</Target>
<Target Name="PublishCopyFiles" AfterTargets="Publish">
<ItemGroup>
<SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
</ItemGroup>
<Copy
SourceFiles="@(SourceScripts)"
DestinationFolder="$(PublishDir)" />
</Target>
</Project>
是否尝试了dotnet msbuild
命令?您需要在DotNetCoreCLI@2
任务。你能添加你的构建步骤的日志吗?只是你想查看的azure devops中的日志吗?是的,只从azure devops中添加。很好,你已经修复了它。你可以。因此,它可能会帮助遇到相同问题的其他人
<Project>
<Target Name="CopyFilesToProject" BeforeTargets="BeforeBuild">
<ItemGroup>
<SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
</ItemGroup>
<Copy
SourceFiles="@(SourceScripts)"
DestinationFolder="$(OutDir)" />
</Target>
<Target Name="PublishCopyFiles" AfterTargets="Publish">
<ItemGroup>
<SourceScripts Include="$(MSBuildThisFileDirectory)..\File\*.xml*"/>
</ItemGroup>
<Copy
SourceFiles="@(SourceScripts)"
DestinationFolder="$(PublishDir)" />
</Target>
</Project>