背景资料
两台机器都需要使用该Through Release Management Server over HTTP(S)
选项的放置位置.目前我们在端口1000上使用HTTP端.
工作流程
错误(TL; DR)
每次都收到相同的错误,无论哪台机器或哪种部署方法都无关紧要.该组件始终因JSON.NET问题而失败.
7/22/2015 3:03:39 PM - Error - (13704, 104) - Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.String[]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized …
Run Code Online (Sandbox Code Playgroud) 我正在使用 TFS 2015.2 RTM,我刚刚发现 Release Management vNext REST API 在本地 2.2-preview.1 中。我想创建一个版本,但我不知道放入 POST 请求正文的确切 JSON,因为该文档仅适用于 VSTS。
当我发送请求时,我收到错误消息:
VS402881: No artifact version is specified corresponding to artifact source 'MyBuild.' Specify a valid value and try again.
Run Code Online (Sandbox Code Playgroud)
这是JSON:
$body = @"
{
definitionId": 1,
"description": "test",
"artifacts": [
{
"alias": "Tailspin Toys",
"version": {
"id": 147,
},
"instanceReference": {
"id": 5
}
}
]
}
"@
Run Code Online (Sandbox Code Playgroud)
这是 Invoke-RestMethod 命令:
$releaseResponse = Invoke-RestMethod -Method Post -Credential $credential -ContentType application/json -Uri $postUri …
Run Code Online (Sandbox Code Playgroud) 我尝试使用下面文章中描述的步骤将发布管理配置为使用不受信任的域跨不同服务器工作.
但是当我尝试使用ghost帐户配置RM代理时,它会抛出标题中提到的错误.请看错误屏幕.. !!
我正在寻找最近几天的解决方案...... !!! 专家请帮帮我.
我有一个持续的集成构建,以前运行正常,但开始给我以下异常:
此异常来自构建代理,
处理每个ConfigurationsToRelease
发布构建
为当前配置运行Release Management构建过程:异常:
Exception Message: The directory name is invalid (type Win32Exception)
Exception Stack Trace:
Server stack trace:
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.ProcessWrapper.Start()
at Microsoft.TeamFoundation.Build.Workflow.Activities.InvokeProcess.InvokeProcessInternal.RunCommand (AsyncState state)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[]
args, Object server, Object[]& outArgs
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg,
IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at System.Func`2.EndInvoke(IAsyncResult result)
at System.Activities.AsyncCodeActivity`1.System.Activities.IAsyncCodeActivity.FinishExecution
(AsyncCodeActivityContext context, IAsyncResult result)
at
System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
Run Code Online (Sandbox Code Playgroud)
这是使用默认的构建模板,它似乎是随机开始的.该版本实际上从未实现过发布管理,并且从不抛出异常或回滚.它似乎死了,因为它应该击中发布管理.
我已经检查了drop文件夹,所有内容都应该存在.权限仍然是正确的.我不知道它在找什么文件夹.
有没有人有这方面的经验或任何从哪里开始寻找的想法?
我想删除一个用于测试的旧版本模板,以便稍微清理一下Release Management.但是当我尝试停用模板时,我收到以下消息:
要停用此版本模板,使用此模板的任何版本都必须具有以下状态之一:已释放,已放弃
好吧,这个消息是有意义的......必须有一些未完成的版本,我需要通过完成流程或放弃它来完成.当我进入待处理版本列表时,状态中有一堆Rejected
我不能重试也不能放弃.例如:
现在我无法删除旧的,过时的模板,因为我找不到放弃这些被拒绝版本的方法.我该怎么做才能删除模板?
这篇博文是我发现的唯一接近问题的帖子,但它没有解释如何配置使用PS/DSC部署以使用详细选项运行:http: //nakedalm.com/create-log-条目释放管理/
我可以使用这个基于代理的发布模板来运行脚本:
Write-Debug "debug"
Write-Output "output"
Write-Verbose "verbose"
Write-Warning "warning"
Run Code Online (Sandbox Code Playgroud)
深入研究此版本的部署日志可提供以下行的日志:
output
WARNING: warning
Run Code Online (Sandbox Code Playgroud)
如果我在-guguments字段中添加-verbose,我在日志中也会得到一个"VERBOSE:verbose"行.
这很棒,但我需要访问系统变量($ Stage,$ BuildNumber等).当我创建一个vNext模板来运行相同的脚本时(说明在这里:http://www.visualstudio.com/en-us/get-started/deploy-no-agents-vs.aspx),日志报告:
Copying recursively from \\vsalm\Drops2\TestBuild\TestBuild_20130710.3 to c:\Windows\DtlDownloads\my vnext component succeeded.
Run Code Online (Sandbox Code Playgroud)
很好,这个复制操作成功了,但我希望我的脚本输出也在这个日志中.有没有人知道配置"使用PS/DSC部署"操作,以便发布管理捕获powershell脚本输出?
我正在使用 VSTS 发布管理将工件部署到 IIS 网站。我有几个要部署的 Web 应用程序和 Web 服务。所以,我试图找出最适合我的情况的任务类型。
我使用 Visual Studio Build Task 为项目创建了一个构建定义,如下所示:
这工作正常,但我需要添加一个任务来复制 IIS 网站目录下的工件。
另一种方法是使用 IIS Web 部署作为发布定义中的任务,因此我将构建定义创建为:
但是,它需要发布配置文件(构建失败,因为找不到它)。我不需要为应用程序中的每个项目创建一个发布配置文件,因为这会带来太多的工作。
是否有解决方法或什么是首选方法?
autorelease msdeploy ms-release-management azure-devops azure-pipelines
我正在使用 TFS 2017 设置我们的构建/发布环境。
我将 Build 设置为在每次提交后自动运行,当我们准备发布应用程序的某个版本时,会手动创建一个 Release,然后将其部署到各种环境中。
我们想在我们的 git 存储库中标记已发布的版本,以便轻松知道哪个 git 修订版对应于二进制文件。构建定义中的“标签源”设置允许在构建时标记 git 修订版,但由于我们在每次提交时构建,这会生成许多我们不关心的标记(因为它们不会部署到任何地方,直到发布)。
如何设置 TFS,以便在创建发布(或可能部署到环境)时,在我们的 Git 存储库中的相应提交上创建标签?
任务组是在 Visual Studio Online 中构建常用生成和/或部署操作库的好方法。有谁知道复制(或克隆)现有任务组的方法?我不认为这是 UI 中任何地方的一个选项。
tfs ×4
azure-devops ×2
autorelease ×1
deployment ×1
git ×1
json ×1
msdeploy ×1
powershell ×1
release ×1
rest ×1
tfs2013 ×1
tfs2017 ×1
tfsbuild ×1