{"id":594,"date":"2019-12-06T16:13:08","date_gmt":"2019-12-06T15:13:08","guid":{"rendered":"http:\/\/daxvisionerp.com\/?p=594"},"modified":"2025-10-27T08:17:26","modified_gmt":"2025-10-27T08:17:26","slug":"dynamics-365-fo-build-from-release-folder","status":"publish","type":"post","link":"https:\/\/daxvisionerp.com\/home\/dynamics-365-fo-build-from-release-folder\/","title":{"rendered":"Dynamics 365 F&#038;O build from release folder"},"content":{"rendered":"\n<p>There is a good documentation of how to set up Azure DevOps and a build environment for continuous build for your Dynamics 365 for Finance and Operations here: <a href=\"https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/continuous-build-test-automation\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/continuous-build-test-automation<\/a><\/p>\n\n\n\n<p>Here the starting situation is that you have a Trunk\/Main folder with code like here:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/1MainTrunk-1024x643.png\" alt=\"\" class=\"wp-image-597\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/media\/build-trunk-main-metadata.png\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/media\/build-trunk-main-metadata.png<\/a><\/p>\n\n\n\n<p>Our situation was slightly different. We needed to build from release folder as we are upgrading AX 2012 R3 using the LCS code upgrade tool:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/2CodeUpgrade.png\" alt=\"\" class=\"wp-image-598\"\/><\/figure>\n\n\n\n<p>At the end of the\nautomatic code upgrade, we have our code under release folders:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/3ReleaseFolder.png\" alt=\"\" class=\"wp-image-599\"\/><\/figure>\n\n\n\n<p>When I copied\nevery file to the Trunk\/Main, the build worked. To make it work from the\nrelease folders I had to make the following 3+1 changes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Edit the standard build definition and modify the server path in \u2019Get sources\u2019 step from \u2019$\/****prod\/Trunk\/Main\u2019:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/4GetSourcesServerPath-1024x472.png\" alt=\"\" class=\"wp-image-600\"\/><\/figure>\n\n\n\n<p>In our case it is\n\u2019$\/****Oprod\/Releases\/8.1.136.24_U1_2018-10-03T07.57.56\u2019<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2. Copy the AXModulesBuild.proj file from Main\/Trunk, add it to the release folder and check it in:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/5CheckINAXModulesBuild.Proj_.png\" alt=\"\" class=\"wp-image-601\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3. Modify \u2019Project\u2019 to point to AXModulesBuild.proj under the new place. <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/6pointToAXModulesBuild.proj_-1024x453.png\" alt=\"\" class=\"wp-image-602\"\/><\/figure>\n\n\n\n<p>From \u2019\/****prod\/Trunk\/Main\/AXModulesBuild.proj\u2019 we modified to \u2019$\/****Oprod\/Releases\/8.1.136.24_U1_2018-10-03T07.57.56\/AXModulesBuild.proj\u2019<\/p>\n\n\n\n<p>These were all the build modifications. After that I started the build and got a Database synchronization error:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/7DBSynchError_WHSDocumentRoutingLine_PrinterName-1024x419.png\" alt=\"\" class=\"wp-image-603\"\/><\/figure>\n\n\n\n<p>ALTER&nbsp;TABLE&nbsp;WHSDOCUMENTROUTINGLINE&nbsp;ALTER&nbsp;COLUMN&nbsp;PRINTERNAME&nbsp;NVARCHAR(80)&nbsp;NOT&nbsp;NULL;<\/p>\n\n\n\n<p>&nbsp;&nbsp;UPDATE&nbsp;SQLDICTIONARY&nbsp;SET&nbsp;STRSIZE&nbsp;=&nbsp;80,&nbsp;RIGHTJUSTIFY&nbsp;=&nbsp;0,&nbsp;FIELDTYPE&nbsp;=&nbsp;0&nbsp;WHERE&nbsp;NAME&nbsp;=&nbsp;&#8216;PrinterName&#8217;&nbsp;AND&nbsp;TABLEID&nbsp;=&nbsp;10058;&nbsp;&#8212;&gt;&nbsp;System.Data.SqlClient.SqlException:&nbsp;The&nbsp;index&nbsp;&#8216;I_10058DOCUMENTROUTINGTABLEPRINTERNAMEIDX&#8217;&nbsp;is&nbsp;dependent&nbsp;on&nbsp;column&nbsp;&#8216;PRINTERNAME&#8217;.<\/p>\n\n\n\n<p>&nbsp;&nbsp;ALTER&nbsp;TABLE&nbsp;ALTER&nbsp;COLUMN&nbsp;PRINTERNAME&nbsp;failed&nbsp;because&nbsp;one&nbsp;or&nbsp;more&nbsp;objects&nbsp;access&nbsp;this&nbsp;column.<\/p>\n\n\n\n<p>The solution was to log in to the build VM and delete the index:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"http:\/\/daxvisionerp.com\/wp-content\/uploads\/2019\/12\/8DeleteIndex.png\" alt=\"Machine generated alternative text:\nMicrosoft SQL Server Management Studio (Administrator) \nEdit View Debug Tools Window Help \nObject Explcru \nConnect \u2022 \ndbc.WHSCROSSDOCKINGTEMPLATESUPPLVSOURCESTAGlNG \ndbc.wHSCROSSDOCKLOAOLlNE \ndbc.WHSCROSSDOCKOPPORTUNlTY \ndbo.WHSCROSSDOCKOPPORTUNlTYPOLlCY \ndbc.WHSCROSSDOCKTEMPLATE \ndbc.wHSCROSSDOCKTEMPLATESUPPLYSOURCE \ndbc.WHscusTOMERGROUPPR00UCTFlLTERSTAGlNG \ndbc.WHSCUSTOMERPRODUCTFlLTERSTAGlNG \ndbc.WHSCUSTOMWAREHOUSEWORKTYPESTAGING \ndbc.wHSCUSTTABLE \ndbc.WHscyc:LECOUNTlNGPLANPR00UCTSELECT10NSTAGlNG \ndbc.WHSCYCLECOUNTlNGPLANSTAGlNG \ndbc.WHSCYCLECOUUTlNGTHRESHOLDSTAGlNG \ndbc.WHSCYCLECOUNTPLAN \ndbc.WHSCVCLECOUNTPLANOVERVlEW \ndbo.WHSCYCLECOUNTPLANPRODUCTSELECT10N \ndbc.WHSCYCLECOUUTTHRESHOLD \ndbc.wHSDlMTFACKlNG \ndbc.WHSDlSPOSITlONTABLE \ndbc.WHSDOCKMGMTPROFlLE \ndbc.WHSDOCUMENTROUTlNGLAVOUT \ndbc.wHSDOCuMENTROUTINGLlNE \nCO lumns \nKeys \nConstraints \nTriggers \n\u2022 Indexes \nl_10058RECID (Unique, Non-Clustered) \nStatistics \ndbc.WHSDOCUMENTROUTlNGPRlNTERLAYOUTSTAGlNG \ndbo.WHSDOCUMENTROUTlNGPRINTERSTAGlNG \ndbc.WHSDOCUMENTROUTlNGTABLE \ndbc.wHSECORESPROOUCTTPAUSPORTATlONCODES \ndbc.WHSFlLTERGROUPTA8LE \ndbo.WHSFILTERPARM \ndbc.WHSFILTERS \ndbc.wHSFlLTERTABLE \" class=\"wp-image-604\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n<div class=\"taxonomy-post_tag wp-block-post-terms\"><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/msdyn365fo\/\" rel=\"tag\">#MSDyn365FO<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/axmodulesbuil\/\" rel=\"tag\">AXModulesBuil<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/build\/\" rel=\"tag\">Build<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/dbsynch\/\" rel=\"tag\">DBSynch<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/printername\/\" rel=\"tag\">PrinterName<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/release\/\" rel=\"tag\">Release<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/trunk\/\" rel=\"tag\">Trunk<\/a><span class=\"wp-block-post-terms__separator\">, <\/span><a href=\"https:\/\/daxvisionerp.com\/home\/tag\/whsdocumentroutingline\/\" rel=\"tag\">WHSDOCUMENTROUTINGLINE<\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>There is a good documentation of how to set up Azure DevOps and a build environment for continuous build for your Dynamics 365 for Finance and Operations here: https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/continuous-build-test-automation Here the starting situation is that you have a Trunk\/Main folder with code like here: https:\/\/docs.microsoft.com\/en-us\/dynamics365\/fin-ops-core\/dev-itpro\/perf-test\/media\/build-trunk-main-metadata.png Our situation was slightly different. We needed to build from [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"1080","footnotes":""},"categories":[19],"tags":[25,61,63,65,67,69,71,73],"class_list":["post-594","post","type-post","status-publish","format-standard","hentry","category-dynamics-365fo","tag-msdyn365fo","tag-axmodulesbuil","tag-build","tag-dbsynch","tag-printername","tag-release","tag-trunk","tag-whsdocumentroutingline"],"_links":{"self":[{"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/posts\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":1,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/posts\/594\/revisions"}],"predecessor-version":[{"id":1392,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/posts\/594\/revisions\/1392"}],"wp:attachment":[{"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/media?parent=594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/categories?post=594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daxvisionerp.com\/home\/wp-json\/wp\/v2\/tags?post=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}