我正在使用VSTS版本中的" 复制文件"任务将VS项目(bin\Release文件夹)的结果复制到临时目录中的子文件夹.
我期望bin文件夹的内容应该在staging\bin文件夹中:
drop\bin\
Run Code Online (Sandbox Code Playgroud)
但它会将完整路径复制到目的地.所以我的二进制文件都在
drop\bin\src\MySolution\MyProject\bin\Release\
Run Code Online (Sandbox Code Playgroud)
有没有办法将我的发布文件夹中的文件复制到暂存文件夹而不复制完整路径?
当我尝试使用VSTS打包.net核心解决方案时,我收到The 'Version' attribute is not declared错误.我的nuspec文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>YYY.AspNetCore.CustomMapper</id>
<version>0.0.1</version>
<authors>build@YYYYYY.com</authors>
<owners>YYY YYY</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>YYY.AspNetCore</description>
<tags>YYY</tags>
<contentFiles>
<files include="wwwroot\**" buildAction="EmbeddedResource" copyToOutput="true" />
<files include="Areas\CustomMapper\readme.txt" buildAction="EmbeddedResource" copyToOutput="true" />
</contentFiles>
<dependencies>
<group>
<dependency id="EntityFramework" Version="6.1.0" />
<dependency id="Microsoft.AspNetCore" Version="1.1.0" />
<dependency id="Microsoft.AspNetCore.Mvc" version="1.1.0" />
<dependency id="Microsoft.AspNetCore.StaticFiles" version="1.1.0" />
<dependency id="Microsoft.Extensions.Logging.Debug" version="1.1.0" />
<dependency id="YYY.Web.AspNetCore" version="1.0.1" />
<dependency id="SimpleInjector.Integration.AspNetCore" version="4.0.10" />
<dependency id="SimpleInjector.Integration.AspNetCore.Mvc" version="4.0.10" />
</group>
</dependencies>
</metadata>
<files>
<file src="wwwroot\**" target="content\wwwroot" />
<file src="Areas\CustomMapper\readme.txt" target="" …Run Code Online (Sandbox Code Playgroud) 我在VSTS中运行一个任务,它对上一步的变量执行一些操作,然后我需要输出结果以便在将来的任务中使用.我在Linux构建主机上运行的命令行任务中有以下内容,但在尝试稍后使用$(podName3)时使用结果时没有运气.
COMMAND="$(echo '$(pods)' | grep -oh -P '[^ ]*' | grep schema)"
##vso[task.setvariable variable=podName3]"$COMMAND"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个不同的变化无济于事,需要一些方向,因为这已经困扰了我太久了
azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline
我在Azure DevOps中运行构建管道以每日更新Dockerfile并重建具有更新依赖项的容器映像.目的是为项目提供最新版本的依赖项,并在容器注册表中发布新工件.
在Azure DevOps中,我有三个链式构建管道.第一个管道每天都会触发预定的触发器.使用CI触发器文件路径过滤器触发接下来的两个管道.这一切都运作良好,大部分时间.
我的问题是有时候根本没有触发时间表.这种情况发生在管道正常运行数天(大约1到15天)之后.如果源管理或管道已更改,则 " 仅计划构建 "复选框未选中,因此不应该提交任何提交不应该是问题.
此问题情况之后的奇怪之处在于,当我登录Azure DevOps门户时,会立即触发预定事件,并且我可以看到最新的每日构建开始运行.我不需要手动启动它,它会像预定的那样自动启动但是在我登录时.
该项目使用Azure DevOps的免费版本运行.当Azure DevOps是VSTS时,项目和管道已经创建,并且VSTS中也存在相同的触发问题.有时我用完了免费配额,然后收到代理无法启动的错误.当预定的触发器未运行时,情况并非如此.
什么可能导致计划触发问题?有没有人遇到过同样的问题?我如何调试或解决此问题并使我的构建可靠地运行?我找不到有关触发事件的任何调试信息,只能在触发事件发生后从代理中找到日志.我还没有重新创建管道,以确定在这种情况下"重启"是否有帮助.如果没有更好的答案,那就是我的下一步.
我在Azure DevOps上为Service Fabric解决方案配置了一个构建管道,如下所示:
直到几天前,当某个特定的构建代理(专用)上的构建开始失败时,一切都很好,并出现以下错误(对于一些项目):
C:\ Program Files \ dotnet \ sdk \ 2.1.200 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.PackageDependencyResolution.targets(327,5):错误:资产文件'F:\ Agent03 \ w \ 84 \ s找不到\ src \ MyProject.Sam.Tiles.Domain \ obj \ project.assets.json'。运行NuGet软件包还原以生成此文件。
失败的任务是Build solution $(PathToSolution)一项。
奇怪的是,当在某些代理上运行时构建失败,但是对于其他代理,构建很好。
一些细节:
Use NuGet 4.x我认为,这项任务是最近开始使用NuGet v4.9.1的。我尝试使用v4.8.1没有运气;PackageReference格式,但是.sfproj项目使用packages.config文件dotnet restore任务,但尝试恢复该.sfproj项目的软件包时出现错误:
错误:无法找到.. \ packages \ Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7 \ build \ Microsoft.VisualStudio.Azure.Fabric.Application.props文件。请还原'Microsoft.VisualStudio.Azure.Fabric.MSBuild'Nuget程序包
关于什么可能导致此问题的任何想法?
我想通过API调用自动化Azure管道的排队,获取有关管道/构建/作业状态的信息,
Azure Pipelines文档仅针对“调用HTTP Rest API”任务提及“ API”:https : //docs.microsoft.com/zh-cn/azure/devops/pipelines/tasks/utility/http-rest-api?view= vsts这可能会派上用场,但不是我想要的。
有一个“ Azure DevOps Services REST API”:https ://docs.microsoft.com/zh-cn/rest/api/azure/devops/?view=azure-devops-rest-5.1 但我找不到任何提到“管道”,所以这似乎也不是对的。
StackOverflow标记azure-devops-rest-api也仅提及VSTS和TFS:
Visual Studio Team Services REST API是一组API,允许管理Visual Studio Team Services帐户以及TFS 2015和2017服务器。
除了这两个结果,我只找到这些版本的其他副本或其他版本的翻译-以及许多与Azure无关的文档。
我只是使用错误的单词进行搜索吗?
是否有适用于Azure DevOps管道的实际API?
它有可用的API资源管理器吗?
它是否具有适用于JavaScript,Ruby或PHP等语言的客户端?
我们有一个 VS 解决方案,目前在Azure DevOps上使用托管 VS2017代理。我们现在想将我们的解决方案升级到VS2019。但是,我看不到任何修改/更新Azure DevOps管道以使用windows-2019代理的方法。它似乎仅在创建新的Azure DevOps管道时可用。
有没有办法将我们当前的Azure DevOps VS2017 管道修改/更新为 2019 托管代理,而无需从头开始重新创建我们的管道?
更新
从下面的截图中可以看出,VS2019 没有出现在可用代理池的下拉列表中。
我尝试了几天来使用 Azure DevOps Pipeline 发布我的 ClickOnce 应用程序。在详细介绍之前,我想从我的发布视图中执行以下操作:
我从一个工件和 2 个发布阶段开始,config.deploy在我的 Staging 阶段使用 staging 变量修改config.deploy文件,并在我的 Production 阶段使用生产变量修改文件。部署工作正常,但由于哈希检查系统,应用程序的安装无法正常工作。
所以我决定用 2 个工件创建 2 个版本。我drop_staging在第一次构建和drop_production第二次构建期间将经典 drop 重命名为 a 。我希望构建系统 (MSBuild) 能够在构建和发布过程中选择正确的app.Debug.configthenapp.Release.config文件。
这是我的构建定义
这是我的构建参数
/target:publish
/p:ApplicationVersion=$(Build.BuildNumber)
/p:PublishURL=http://app-staging.example.com/
/p:UpdateEnabled=true
/p:UpdateMode=Foreground
/p:ProductName="App Staging"
/p:OutputPath="$(build.ArtifactStagingDirectory)\Publish\\"
Run Code Online (Sandbox Code Playgroud)
配置设置为第一次构建的暂存,然后第二次构建的生产。当然,我在 Visual Studio 中有一个Staging和Production构建定义。我有一个app.configwithapp.Staging.config和app.Production.configin 我的项目。
我不能简单地添加一个任务来在构建后转换我的配置文件,因为我不会尊重哈希。我应该找到一种方法来告诉我的构建使用正确的 XML 转换配置文件。我没有看到任何其他解决方案,或者可能在构建之前应用此转换?是否可以?你的解决方案是什么?
我试图在DotNetCoreCLI@2使用build publish命令执行任务时排除项目。我有一些我不想运行发布的测试项目(和其他项目)。我已经尝试根据this和this 进行文件匹配,但我无法开始工作。该projects属性的文档没有确切说明如何编写排除项,我尝试了下面显示的不同变体。
变体 1
projects: '**/*.csproj
!**/*.Test.csproj'
Run Code Online (Sandbox Code Playgroud)
变体 2
projects: '**/*.csproj
!**/*.Test.csproj'
Run Code Online (Sandbox Code Playgroud)
变体 3
projects: '**/*.csproj !**/*.Test.csproj'
Run Code Online (Sandbox Code Playgroud)
但是这三个报告 ##[error]Project file(s) matching the specified pattern were not found.
如果我删除排除项,一切都会按预期进行,但它会构建所有项目的发布。
任何人都对如何编写它有建议吗?
azure-pipelines ×10
azure-devops ×9
nuget ×2
.net ×1
azure ×1
azure-pipelines-release-pipeline ×1
clickonce ×1