首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从生成管道中的bin文件夹中删除DLL。

从生成管道中的bin文件夹中删除DLL。
EN

Stack Overflow用户
提问于 2019-08-23 14:02:55
回答 1查看 1.8K关注 0票数 0

我有下面的构建脚本,它不使用Azure Devops构建管道。生成解决方案后,我将尝试从bin文件夹中删除一个特定的DLL,该文件夹在本地工作,但在构建管道中不起作用。

代码语言:javascript
复制
<PropertyGroup>
   <PostBuildEvent>
     cd $(TargetDir)
     del Sample.dll
   </PostBuildEvent>
</PropertyGroup>

构建解决方案定义

代码语言:javascript
复制
steps:
- task: VSBuild@1   displayName: 'Build solution'   inputs:
    solution: '$(Parameters.solution)'
    vsVersion: 15.0
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)\\" /p:Configuration=Release'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    maximumCpuCount: true

删除

代码语言:javascript
复制
steps:
- task: DeleteFiles@1
  displayName: 'Delete files from $(Build.ArtifactStagingDirectory)'
  inputs:
    SourceFolder: '$(Build.ArtifactStagingDirectory)'
    Contents: |
     \Sage.Common.LinqBridge*\
     \Sage.Common.LinqBridge.dll*\

发布

代码语言:javascript
复制
steps:
- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    ArtifactName: '$(Parameters.ArtifactName)'
  condition: succeededOrFailed()

解决方案:谢谢 @Levi MSFT帮助我解决这个问题。

在delete任务中,更改delete模式有效。对于参考文献

代码语言:javascript
复制
steps: 
- task: DeleteFiles@1 
displayName: 'Delete files from $(Build.ArtifactStagingDirectory)' 
inputs: 
SourceFolder: '$(Build.ArtifactStagingDirectory)' 
Contents: '**\Sage.Common.LinqBridge.dll'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-26 05:43:08

从生成管道中的bin文件夹中删除DLL。

我已经创建了一个用于测试的示例,它在我这边运行得很好。

为了解决这个问题,我想提供以下解决办法:

  1. 检查构建日志,以确定PostBuildEvent是否已成功执行。
  2. 确保在构建任务中指定了正确的MSBuild参数,如:/property:Configuration=Release

  1. 如果您使用的是私有代理,请确保您有从私有代理中删除文件的权限。或者您可以使用托管代理进行测试。

更新:

根据错误日志,我们可以知道您正在发布项目并删除post build事件中的一个.dll文件。

如果您检查日志,您将发现MSBuild从obj\Release\Package\PackageTmp\bin文件夹而不是bin文件夹获取文件。这就是为什么在删除Sage.Common.LinqBridge.dll之后仍然存在它的原因。

查看日志:

代码语言:javascript
复制
Adding file (d:\a\8\s\xx\xxx\xxx\xxx\obj\Release\Package\PackageTmp\bin\Sage.Common.LinqBridge.dll)

并且不能通过delete任务删除.zip中的文件。

若要解决此问题,可以将该dll文件的Copy Local设置为False

Update2:

与mbharanidharan88交谈后,发现出现此问题的原因是在删除任务的内容中没有使用正确的语法。

要只删除bin文件夹中的文件,可以使用以下语法:

代码语言:javascript
复制
**\bin\Sage.Common.LinqBridge.dll

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57627919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档