Azure DevOps中有没有适用于nopCommerce 4.xx的有效的内部定义?如果是这样,请您共享YAML文件。我尝试了几种可能的解决方案,但没有成功。
我使用了Azure Devops中的默认ASP.NET Core模板。参见下面的YAML
content: resources:
- repo: self queue: name: Hosted Ubuntu 1604
steps:
- task: DotNetCoreCLI@2 displayName: Restore inputs:
command: restore
projects: '$(Parameters.RestoreBuildProjects)'
- task: DotNetCoreCLI@2 displayName: Build inputs:
projects: '$(Parameters.RestoreBuildProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2 displayName: Test inputs:
command: test
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2 displayName: Publish inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1 displayName: 'Publish Artifact' inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
在构建步骤中,尝试构建插件时会出错:
2018-12-16T20:31:51.2431313Z /home/vsts/work/1/s/src/Build/ClearPluginAssemblies.proj(21,5):错误 MSB3073:命令“ dotnet “ /home/vsts/work/1/s/src/Build\ClearPluginAssemblies.dll” “ OutputPath = / home / vsts / work / 1 / s / src / Build /../ Presentation / Nop.Web / bin / Release / netcoreapp2.1 / | PluginPath = / home / vsts / work / 1 / s / src /Plugins/Nop.Plugin.DiscountRules.CustomerRoles/../../Presentation/Nop.Web/Plugins/DiscountRules.CustomerRoles/|SaveLocalesFolders=“” 以代码1退出。
有人知道如何使它工作吗?
编辑: Eriawan的回应给了我一些见识,可供进一步研究。我调查了其中一个插件的csproj文件,然后在下一节中看到:
感谢您的回复。使我更加接近了问题的根本原因(希望如此)。我调查了nopCommerce插件的csproj文件之一,然后看到以下部分
<!-- This target execute after "Build" target -->
<Target Name="NopTarget" AfterTargets="Build">
<!-- Delete unnecessary libraries from plugins path -->
<MSBuild Projects="$(MSBuildProjectDirectory)\..\..\Build\ClearPluginAssemblies.proj" Properties="PluginPath=$(MSBuildProjectDirectory)\$(OutDir)" Targets="NopClear" />
</Target>
有没有一种方法可以在构建过程中关闭这些额外的执行?还是要在构建期间完成这项工作,而无需调整csproj文件(因为我想采用项目的未来更改)?
答案 0 :(得分:0)
如果使用YAML作为Azure管道的选项,则应注意构建的顺序。另外,请勿将YAML与内部版本定义混合使用,因为YAML与TFS和VSTS使用的旧内部版本定义不同(在将其更改为Azure DevOps之前)。
查看YAML,应该通过执行命令构建对DotNetCoreCLI @ 2任务进行完整构建。您所犯的错误有点神秘,但它表明您只是直接执行dll,这意味着您将 执行 而不是实际构建dll。 / p>
所以代替这个:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '$(Parameters.RestoreBuildProjects)'
arguments: '--configuration $(BuildConfiguration)'
应该是这样:
- task: DotNetCoreCLI@2
displayName: Build
command: build
inputs:
projects: '$(Parameters.RestoreBuildProjects)'
arguments: '--configuration $(BuildConfiguration)'
请注意其他command: build
。