[{"data":1,"prerenderedAt":-1},["Reactive",2],{"content-/ko/articles/general/msbuild-xdt-transform":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"_empty":6,"title":8,"description":9,"excerpt":10,"topic":21,"authors":22,"tags":26,"updatedAt":30,"createdAt":30,"body":31,"_type":1993,"_id":1994,"_source":1995,"_file":1996,"_extension":1997},"/ko/articles/general/msbuild-xdt-transform","general",false,"","MSBuild XDT 변환","MSBuild에 내장된 XDT 변환 도구를 사용하여 XML을 변환합니다",{"type":11,"children":12},"root",[13],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18],{"type":19,"value":20},"text","XML은 Visual Studio에 내장된 XDT 변환 라이브러리를 통해 새 버전으로 변환할 수 있습니다.","일반",[23],{"name":24,"avatar":25},"Shaun Chong","levi.png",[27,28,29],"xml","msbuild","vs","2026-05-03T02:58:59.000Z",{"type":11,"children":32,"toc":1985},[33,37,48,54,59,194,199,312,317,322,328,333,575,611,628,634,646,682,727,1529,1556,1561,1613,1618,1637,1642,1661,1666,1739,1745,1750,1918,1923,1948,1953,1962,1968,1975,1980],{"type":14,"tag":15,"props":34,"children":35},{},[36],{"type":19,"value":20},{"type":14,"tag":38,"props":39,"children":42},"callout",{"title":40,"type":41},"부인 성명","warning",[43],{"type":14,"tag":15,"props":44,"children":45},{},[46],{"type":19,"value":47},"한국어 실력이 부적하여 이 글이 구글 번역기를 주로 활용했기 때문에 부정확한 문법과 어휘가 있을수 있습니다. 이 점 양해 부탁드리며, 추후에 다시 검토하여 수정하도록 하겠습니다.",{"type":14,"tag":49,"props":50,"children":52},"h2",{"id":51},"대본",[53],{"type":19,"value":51},{"type":14,"tag":15,"props":55,"children":56},{},[57],{"type":19,"value":58},"다음과 같은 XML 설정 파일이 있다고 가정해 보겠습니다.",{"type":14,"tag":60,"props":61,"children":66},"code",{"className":62,"code":64,"filename":65,"language":27,"meta":7},[63],"language-xml","\u003Cwebsite>\n  \u003Ctitle>내 사이트\u003C/title>\n  \u003Cenvironment>개발\u003C/environment>\n  \u003Curl>http://localhost:8080\u003C/url>\n\u003C/website>\n","dev.config.xml",[67],{"type":14,"tag":68,"props":69,"children":70},"pre",{},[71],{"type":14,"tag":60,"props":72,"children":73},{"__ignoreMap":7},[74,97,124,150,176],{"type":14,"tag":75,"props":76,"children":79},"span",{"class":77,"line":78},"line",1,[80,86,92],{"type":14,"tag":75,"props":81,"children":83},{"class":82},"ct-947867",[84],{"type":19,"value":85},"\u003C",{"type":14,"tag":75,"props":87,"children":89},{"class":88},"ct-241623",[90],{"type":19,"value":91},"website",{"type":14,"tag":75,"props":93,"children":94},{"class":82},[95],{"type":19,"value":96},">\n",{"type":14,"tag":75,"props":98,"children":100},{"class":77,"line":99},2,[101,106,111,116,120],{"type":14,"tag":75,"props":102,"children":103},{"class":82},[104],{"type":19,"value":105},"  \u003C",{"type":14,"tag":75,"props":107,"children":108},{"class":88},[109],{"type":19,"value":110},"title",{"type":14,"tag":75,"props":112,"children":113},{"class":82},[114],{"type":19,"value":115},">내 사이트\u003C/",{"type":14,"tag":75,"props":117,"children":118},{"class":88},[119],{"type":19,"value":110},{"type":14,"tag":75,"props":121,"children":122},{"class":82},[123],{"type":19,"value":96},{"type":14,"tag":75,"props":125,"children":127},{"class":77,"line":126},3,[128,132,137,142,146],{"type":14,"tag":75,"props":129,"children":130},{"class":82},[131],{"type":19,"value":105},{"type":14,"tag":75,"props":133,"children":134},{"class":88},[135],{"type":19,"value":136},"environment",{"type":14,"tag":75,"props":138,"children":139},{"class":82},[140],{"type":19,"value":141},">개발\u003C/",{"type":14,"tag":75,"props":143,"children":144},{"class":88},[145],{"type":19,"value":136},{"type":14,"tag":75,"props":147,"children":148},{"class":82},[149],{"type":19,"value":96},{"type":14,"tag":75,"props":151,"children":153},{"class":77,"line":152},4,[154,158,163,168,172],{"type":14,"tag":75,"props":155,"children":156},{"class":82},[157],{"type":19,"value":105},{"type":14,"tag":75,"props":159,"children":160},{"class":88},[161],{"type":19,"value":162},"url",{"type":14,"tag":75,"props":164,"children":165},{"class":82},[166],{"type":19,"value":167},">http://localhost:8080\u003C/",{"type":14,"tag":75,"props":169,"children":170},{"class":88},[171],{"type":19,"value":162},{"type":14,"tag":75,"props":173,"children":174},{"class":82},[175],{"type":19,"value":96},{"type":14,"tag":75,"props":177,"children":179},{"class":77,"line":178},5,[180,185,189],{"type":14,"tag":75,"props":181,"children":182},{"class":82},[183],{"type":19,"value":184},"\u003C/",{"type":14,"tag":75,"props":186,"children":187},{"class":88},[188],{"type":19,"value":91},{"type":14,"tag":75,"props":190,"children":191},{"class":82},[192],{"type":19,"value":193},">",{"type":14,"tag":15,"props":195,"children":196},{},[197],{"type":19,"value":198},"이 설정은 로컬/개발 환경에만 적용됩니다. 프로덕션 환경에서 사용하려면 설정을 복사하여 붙여넣고 관련 속성만 환경에 맞게 변경하면 됩니다.",{"type":14,"tag":60,"props":200,"children":204},{"className":201,"code":202,"filename":203,"language":27,"meta":7},[63],"\u003Cwebsite>\n  \u003Ctitle>내 사이트\u003C/title>\n  \u003Cenvironment>생산\u003C/environment>\n  \u003Curl>https://www.mysite.com\u003C/url>\n\u003C/website>\n","prod.config.xml",[205],{"type":14,"tag":68,"props":206,"children":207},{},[208],{"type":14,"tag":60,"props":209,"children":210},{"__ignoreMap":7},[211,226,249,273,297],{"type":14,"tag":75,"props":212,"children":213},{"class":77,"line":78},[214,218,222],{"type":14,"tag":75,"props":215,"children":216},{"class":82},[217],{"type":19,"value":85},{"type":14,"tag":75,"props":219,"children":220},{"class":88},[221],{"type":19,"value":91},{"type":14,"tag":75,"props":223,"children":224},{"class":82},[225],{"type":19,"value":96},{"type":14,"tag":75,"props":227,"children":228},{"class":77,"line":99},[229,233,237,241,245],{"type":14,"tag":75,"props":230,"children":231},{"class":82},[232],{"type":19,"value":105},{"type":14,"tag":75,"props":234,"children":235},{"class":88},[236],{"type":19,"value":110},{"type":14,"tag":75,"props":238,"children":239},{"class":82},[240],{"type":19,"value":115},{"type":14,"tag":75,"props":242,"children":243},{"class":88},[244],{"type":19,"value":110},{"type":14,"tag":75,"props":246,"children":247},{"class":82},[248],{"type":19,"value":96},{"type":14,"tag":75,"props":250,"children":251},{"class":77,"line":126},[252,256,260,265,269],{"type":14,"tag":75,"props":253,"children":254},{"class":82},[255],{"type":19,"value":105},{"type":14,"tag":75,"props":257,"children":258},{"class":88},[259],{"type":19,"value":136},{"type":14,"tag":75,"props":261,"children":262},{"class":82},[263],{"type":19,"value":264},">생산\u003C/",{"type":14,"tag":75,"props":266,"children":267},{"class":88},[268],{"type":19,"value":136},{"type":14,"tag":75,"props":270,"children":271},{"class":82},[272],{"type":19,"value":96},{"type":14,"tag":75,"props":274,"children":275},{"class":77,"line":152},[276,280,284,289,293],{"type":14,"tag":75,"props":277,"children":278},{"class":82},[279],{"type":19,"value":105},{"type":14,"tag":75,"props":281,"children":282},{"class":88},[283],{"type":19,"value":162},{"type":14,"tag":75,"props":285,"children":286},{"class":82},[287],{"type":19,"value":288},">https://www.mysite.com\u003C/",{"type":14,"tag":75,"props":290,"children":291},{"class":88},[292],{"type":19,"value":162},{"type":14,"tag":75,"props":294,"children":295},{"class":82},[296],{"type":19,"value":96},{"type":14,"tag":75,"props":298,"children":299},{"class":77,"line":178},[300,304,308],{"type":14,"tag":75,"props":301,"children":302},{"class":82},[303],{"type":19,"value":184},{"type":14,"tag":75,"props":305,"children":306},{"class":88},[307],{"type":19,"value":91},{"type":14,"tag":75,"props":309,"children":310},{"class":82},[311],{"type":19,"value":193},{"type":14,"tag":15,"props":313,"children":314},{},[315],{"type":19,"value":316},"간단한 설정이라면 괜찮을 수 있습니다. 하지만 설정이 1,000줄이나 된다면 어떨까요? 복사 붙여넣기 방식은 오류 발생 가능성이 높고 유지 관리가 어려워집니다. 또한 일부 속성은 여러 환경에서 재사용되고 공유되므로 모든 속성을 변경할 필요가 없어 중복이 발생합니다.",{"type":14,"tag":15,"props":318,"children":319},{},[320],{"type":19,"value":321},"따라서 복사 붙여넣기 대신 XDT 변환을 사용하여 기본 XML 파일을 확장하는 것이 가능합니다.",{"type":14,"tag":49,"props":323,"children":325},{"id":324},"구문-소개",[326],{"type":19,"value":327},"구문 소개",{"type":14,"tag":15,"props":329,"children":330},{},[331],{"type":19,"value":332},"XDT 변환은 이렇게 생겼습니다. 여전히 XML 파일입니다.",{"type":14,"tag":60,"props":334,"children":337},{"className":335,"code":336,"filename":203,"language":27,"meta":7},[63],"\u003C?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\u003Cwebsite xmlns:xdt=\"http://schemas.microsoft.com/XML-Document-Transform\">\n  \u003Cenvironment\n    xdt:Locator=\"XPath(//website/environment)\"\n    xdt:Transform=\"Replace\">생산\u003C/environment>\n  \u003Curl\n    xdt:Locator=\"XPath(//website/url)\"\n    xdt:Transform=\"Replace\">https://www.mysite.com\u003C/url>\n\u003C/website>\n",[338],{"type":14,"tag":68,"props":339,"children":340},{},[341],{"type":14,"tag":60,"props":342,"children":343},{"__ignoreMap":7},[344,392,426,438,460,493,506,527,559],{"type":14,"tag":75,"props":345,"children":346},{"class":77,"line":78},[347,352,356,362,367,373,378,382,387],{"type":14,"tag":75,"props":348,"children":349},{"class":82},[350],{"type":19,"value":351},"\u003C?",{"type":14,"tag":75,"props":353,"children":354},{"class":88},[355],{"type":19,"value":27},{"type":14,"tag":75,"props":357,"children":359},{"class":358},"ct-642681",[360],{"type":19,"value":361}," version",{"type":14,"tag":75,"props":363,"children":364},{"class":82},[365],{"type":19,"value":366},"=",{"type":14,"tag":75,"props":368,"children":370},{"class":369},"ct-094461",[371],{"type":19,"value":372},"\"1.0\"",{"type":14,"tag":75,"props":374,"children":375},{"class":358},[376],{"type":19,"value":377}," encoding",{"type":14,"tag":75,"props":379,"children":380},{"class":82},[381],{"type":19,"value":366},{"type":14,"tag":75,"props":383,"children":384},{"class":369},[385],{"type":19,"value":386},"\"utf-8\"",{"type":14,"tag":75,"props":388,"children":389},{"class":82},[390],{"type":19,"value":391}," ?>\n",{"type":14,"tag":75,"props":393,"children":394},{"class":77,"line":99},[395,399,403,408,413,417,422],{"type":14,"tag":75,"props":396,"children":397},{"class":82},[398],{"type":19,"value":85},{"type":14,"tag":75,"props":400,"children":401},{"class":88},[402],{"type":19,"value":91},{"type":14,"tag":75,"props":404,"children":405},{"class":82},[406],{"type":19,"value":407}," ",{"type":14,"tag":75,"props":409,"children":410},{"class":358},[411],{"type":19,"value":412},"xmlns:xdt",{"type":14,"tag":75,"props":414,"children":415},{"class":82},[416],{"type":19,"value":366},{"type":14,"tag":75,"props":418,"children":419},{"class":369},[420],{"type":19,"value":421},"\"http://schemas.microsoft.com/XML-Document-Transform\"",{"type":14,"tag":75,"props":423,"children":424},{"class":82},[425],{"type":19,"value":96},{"type":14,"tag":75,"props":427,"children":428},{"class":77,"line":126},[429,433],{"type":14,"tag":75,"props":430,"children":431},{"class":82},[432],{"type":19,"value":105},{"type":14,"tag":75,"props":434,"children":435},{"class":88},[436],{"type":19,"value":437},"environment\n",{"type":14,"tag":75,"props":439,"children":440},{"class":77,"line":152},[441,446,451,455],{"type":14,"tag":75,"props":442,"children":443},{"class":82},[444],{"type":19,"value":445},"    ",{"type":14,"tag":75,"props":447,"children":448},{"class":358},[449],{"type":19,"value":450},"xdt:Locator",{"type":14,"tag":75,"props":452,"children":453},{"class":82},[454],{"type":19,"value":366},{"type":14,"tag":75,"props":456,"children":457},{"class":369},[458],{"type":19,"value":459},"\"XPath(//website/environment)\"\n",{"type":14,"tag":75,"props":461,"children":462},{"class":77,"line":178},[463,467,472,476,481,485,489],{"type":14,"tag":75,"props":464,"children":465},{"class":82},[466],{"type":19,"value":445},{"type":14,"tag":75,"props":468,"children":469},{"class":358},[470],{"type":19,"value":471},"xdt:Transform",{"type":14,"tag":75,"props":473,"children":474},{"class":82},[475],{"type":19,"value":366},{"type":14,"tag":75,"props":477,"children":478},{"class":369},[479],{"type":19,"value":480},"\"Replace\"",{"type":14,"tag":75,"props":482,"children":483},{"class":82},[484],{"type":19,"value":264},{"type":14,"tag":75,"props":486,"children":487},{"class":88},[488],{"type":19,"value":136},{"type":14,"tag":75,"props":490,"children":491},{"class":82},[492],{"type":19,"value":96},{"type":14,"tag":75,"props":494,"children":496},{"class":77,"line":495},6,[497,501],{"type":14,"tag":75,"props":498,"children":499},{"class":82},[500],{"type":19,"value":105},{"type":14,"tag":75,"props":502,"children":503},{"class":88},[504],{"type":19,"value":505},"url\n",{"type":14,"tag":75,"props":507,"children":509},{"class":77,"line":508},7,[510,514,518,522],{"type":14,"tag":75,"props":511,"children":512},{"class":82},[513],{"type":19,"value":445},{"type":14,"tag":75,"props":515,"children":516},{"class":358},[517],{"type":19,"value":450},{"type":14,"tag":75,"props":519,"children":520},{"class":82},[521],{"type":19,"value":366},{"type":14,"tag":75,"props":523,"children":524},{"class":369},[525],{"type":19,"value":526},"\"XPath(//website/url)\"\n",{"type":14,"tag":75,"props":528,"children":530},{"class":77,"line":529},8,[531,535,539,543,547,551,555],{"type":14,"tag":75,"props":532,"children":533},{"class":82},[534],{"type":19,"value":445},{"type":14,"tag":75,"props":536,"children":537},{"class":358},[538],{"type":19,"value":471},{"type":14,"tag":75,"props":540,"children":541},{"class":82},[542],{"type":19,"value":366},{"type":14,"tag":75,"props":544,"children":545},{"class":369},[546],{"type":19,"value":480},{"type":14,"tag":75,"props":548,"children":549},{"class":82},[550],{"type":19,"value":288},{"type":14,"tag":75,"props":552,"children":553},{"class":88},[554],{"type":19,"value":162},{"type":14,"tag":75,"props":556,"children":557},{"class":82},[558],{"type":19,"value":96},{"type":14,"tag":75,"props":560,"children":562},{"class":77,"line":561},9,[563,567,571],{"type":14,"tag":75,"props":564,"children":565},{"class":82},[566],{"type":19,"value":184},{"type":14,"tag":75,"props":568,"children":569},{"class":88},[570],{"type":19,"value":91},{"type":14,"tag":75,"props":572,"children":573},{"class":82},[574],{"type":19,"value":193},{"type":14,"tag":15,"props":576,"children":577},{},[578,580,585,587,591,593,597,599,603,605,609],{"type":19,"value":579},"여기서 ",{"type":14,"tag":581,"props":582,"children":583},"code-inline",{},[584],{"type":19,"value":110},{"type":19,"value":586},"은 모든 환경 출력에서 ​​동일하므로 무시하고 ",{"type":14,"tag":581,"props":588,"children":589},{},[590],{"type":19,"value":136},{"type":19,"value":592},"와 ",{"type":14,"tag":581,"props":594,"children":595},{},[596],{"type":19,"value":162},{"type":19,"value":598},"만 변환합니다. ",{"type":14,"tag":581,"props":600,"children":601},{},[602],{"type":19,"value":450},{"type":19,"value":604},"는 \"원본 요소의 위치\"를 나타내고 ",{"type":14,"tag":581,"props":606,"children":607},{},[608],{"type":19,"value":471},{"type":19,"value":610},"은 \"어떻게 조작할 것인가\"를 지정합니다. 이것들이 XDT 변환이 제공하는 기본적인 연산자입니다.",{"type":14,"tag":15,"props":612,"children":613},{},[614,616,620,622,626],{"type":19,"value":615},"핵심 아이디어는 ",{"type":14,"tag":581,"props":617,"children":618},{},[619],{"type":19,"value":203},{"type":19,"value":621}," 파일이 ",{"type":14,"tag":581,"props":623,"children":624},{},[625],{"type":19,"value":65},{"type":19,"value":627}," 파일을 기반으로 XDT 변환을 거쳐 마치 복사 붙여넣기처럼 완전한 구조를 가진 결과물을 생성하는 것입니다. 다음 단계에서는 변환 프로세스를 설정하는 방법을 보여줍니다.",{"type":14,"tag":49,"props":629,"children":631},{"id":630},"프로젝트-설정",[632],{"type":19,"value":633},"프로젝트 설정",{"type":14,"tag":15,"props":635,"children":636},{},[637,639,644],{"type":19,"value":638},"먼저 Visual Studio에서 ",{"type":14,"tag":581,"props":640,"children":641},{},[642],{"type":19,"value":643},"MyXmlTransforms",{"type":19,"value":645},"라는 이름의 빈 콘솔 프로젝트를 생성합니다. 파일 구조는 다음과 같아야 합니다.",{"type":14,"tag":60,"props":647,"children":651},{"className":648,"code":650},[649],"language-undefined","MyXmlTransforms/\n├── MyXmlTransforms.csproj\n└── Program.cs\n",[652],{"type":14,"tag":68,"props":653,"children":654},{},[655],{"type":14,"tag":60,"props":656,"children":657},{"__ignoreMap":7},[658,666,674],{"type":14,"tag":75,"props":659,"children":660},{"class":77,"line":78},[661],{"type":14,"tag":75,"props":662,"children":663},{},[664],{"type":19,"value":665},"MyXmlTransforms/\n",{"type":14,"tag":75,"props":667,"children":668},{"class":77,"line":99},[669],{"type":14,"tag":75,"props":670,"children":671},{},[672],{"type":19,"value":673},"├── MyXmlTransforms.csproj\n",{"type":14,"tag":75,"props":675,"children":676},{"class":77,"line":126},[677],{"type":14,"tag":75,"props":678,"children":679},{},[680],{"type":19,"value":681},"└── Program.cs",{"type":14,"tag":15,"props":683,"children":684},{},[685,687,692,694,699,701,705,707,712,714,718,720,725],{"type":19,"value":686},"그 후 ",{"type":14,"tag":581,"props":688,"children":689},{},[690],{"type":19,"value":691},"Program.cs",{"type":19,"value":693}," 파일을 삭제하고 ",{"type":14,"tag":581,"props":695,"children":696},{},[697],{"type":19,"value":698},"Base",{"type":19,"value":700},"라는 폴더를 생성한 다음 그 안에 ",{"type":14,"tag":581,"props":702,"children":703},{},[704],{"type":19,"value":65},{"type":19,"value":706}," 파일을 넣으세요. 또한 ",{"type":14,"tag":581,"props":708,"children":709},{},[710],{"type":19,"value":711},"Prod",{"type":19,"value":713},"라는 폴더를 생성하고 그 안에 ",{"type":14,"tag":581,"props":715,"children":716},{},[717],{"type":19,"value":203},{"type":19,"value":719}," 파일을 넣으세요. 마지막으로 ",{"type":14,"tag":581,"props":721,"children":722},{},[723],{"type":19,"value":724},"MyXmlTransforms.csproj",{"type":19,"value":726}," 파일을 다음과 같이 업데이트하세요.",{"type":14,"tag":60,"props":728,"children":731},{"className":729,"code":730,"filename":724,"language":27,"meta":7},[63],"\u003CProject Sdk=\"Microsoft.NET.Sdk\" DefaultTargets=\"Transform\">\n    \u003CPropertyGroup>\n        \u003COutputType>Library\u003C/OutputType>\n        \u003CTargetFramework>net10.0\u003C/TargetFramework>\n        \u003CImplicitUsings>enable\u003C/ImplicitUsings>\n        \u003CNullable>enable\u003C/Nullable>\n    \u003C/PropertyGroup>\n\n    \u003CPropertyGroup>\n        \u003CXdtDll>$(MSBuildExtensionsPath)\\Microsoft\\VisualStudio\\v$(VisualStudioVersion)\\Web\\Microsoft.Web.Publishing.Tasks.dll\u003C/XdtDll>\n        \u003COutputDir>$(MSBuildThisFileDirectory)bin\\Output\\\u003C/OutputDir>\n    \u003C/PropertyGroup>\n\n    \u003CUsingTask TaskName=\"TransformXml\" AssemblyFile=\"$(XdtDll)\" />\n\n    \u003CItemGroup>\n        \u003C!-- 여기에 항목을 더 추가하세요 -->\n        \u003CXmlTransform Include=\"Config\">\n            \u003CSource>Base\\dev.config.xml\u003C/Source>\n            \u003CTransform>Prod\\prod.config.xml\u003C/Transform>\n            \u003CDestination>$(OutputDir)prod.config.xml\u003C/Destination>\n        \u003C/XmlTransform>\n    \u003C/ItemGroup>\n\n    \u003CTarget Name=\"Transform\" BeforeTargets=\"Build\">\n        \u003CMakeDir Directories=\"$(OutputDir)\" />\n        \u003CTransformXml Source=\"%(XmlTransform.Source)\" Transform=\"%(XmlTransform.Transform)\" Destination=\"%(XmlTransform.Destination)\" StackTrace=\"true\" />\n        \u003CMessage Text=\"Transformed → %(XmlTransform.Destination)\" Importance=\"high\" />\n    \u003C/Target>\n\u003C/Project>\n",[732],{"type":14,"tag":68,"props":733,"children":734},{},[735],{"type":14,"tag":60,"props":736,"children":737},{"__ignoreMap":7},[738,790,807,833,858,883,907,923,931,946,972,998,1014,1022,1076,1084,1101,1116,1151,1178,1204,1230,1247,1263,1271,1323,1358,1444,1497,1513],{"type":14,"tag":75,"props":739,"children":740},{"class":77,"line":78},[741,745,750,754,759,763,768,772,777,781,786],{"type":14,"tag":75,"props":742,"children":743},{"class":82},[744],{"type":19,"value":85},{"type":14,"tag":75,"props":746,"children":747},{"class":88},[748],{"type":19,"value":749},"Project",{"type":14,"tag":75,"props":751,"children":752},{"class":82},[753],{"type":19,"value":407},{"type":14,"tag":75,"props":755,"children":756},{"class":358},[757],{"type":19,"value":758},"Sdk",{"type":14,"tag":75,"props":760,"children":761},{"class":82},[762],{"type":19,"value":366},{"type":14,"tag":75,"props":764,"children":765},{"class":369},[766],{"type":19,"value":767},"\"Microsoft.NET.Sdk\"",{"type":14,"tag":75,"props":769,"children":770},{"class":82},[771],{"type":19,"value":407},{"type":14,"tag":75,"props":773,"children":774},{"class":358},[775],{"type":19,"value":776},"DefaultTargets",{"type":14,"tag":75,"props":778,"children":779},{"class":82},[780],{"type":19,"value":366},{"type":14,"tag":75,"props":782,"children":783},{"class":369},[784],{"type":19,"value":785},"\"Transform\"",{"type":14,"tag":75,"props":787,"children":788},{"class":82},[789],{"type":19,"value":96},{"type":14,"tag":75,"props":791,"children":792},{"class":77,"line":99},[793,798,803],{"type":14,"tag":75,"props":794,"children":795},{"class":82},[796],{"type":19,"value":797},"    \u003C",{"type":14,"tag":75,"props":799,"children":800},{"class":88},[801],{"type":19,"value":802},"PropertyGroup",{"type":14,"tag":75,"props":804,"children":805},{"class":82},[806],{"type":19,"value":96},{"type":14,"tag":75,"props":808,"children":809},{"class":77,"line":126},[810,815,820,825,829],{"type":14,"tag":75,"props":811,"children":812},{"class":82},[813],{"type":19,"value":814},"        \u003C",{"type":14,"tag":75,"props":816,"children":817},{"class":88},[818],{"type":19,"value":819},"OutputType",{"type":14,"tag":75,"props":821,"children":822},{"class":82},[823],{"type":19,"value":824},">Library\u003C/",{"type":14,"tag":75,"props":826,"children":827},{"class":88},[828],{"type":19,"value":819},{"type":14,"tag":75,"props":830,"children":831},{"class":82},[832],{"type":19,"value":96},{"type":14,"tag":75,"props":834,"children":835},{"class":77,"line":152},[836,840,845,850,854],{"type":14,"tag":75,"props":837,"children":838},{"class":82},[839],{"type":19,"value":814},{"type":14,"tag":75,"props":841,"children":842},{"class":88},[843],{"type":19,"value":844},"TargetFramework",{"type":14,"tag":75,"props":846,"children":847},{"class":82},[848],{"type":19,"value":849},">net10.0\u003C/",{"type":14,"tag":75,"props":851,"children":852},{"class":88},[853],{"type":19,"value":844},{"type":14,"tag":75,"props":855,"children":856},{"class":82},[857],{"type":19,"value":96},{"type":14,"tag":75,"props":859,"children":860},{"class":77,"line":178},[861,865,870,875,879],{"type":14,"tag":75,"props":862,"children":863},{"class":82},[864],{"type":19,"value":814},{"type":14,"tag":75,"props":866,"children":867},{"class":88},[868],{"type":19,"value":869},"ImplicitUsings",{"type":14,"tag":75,"props":871,"children":872},{"class":82},[873],{"type":19,"value":874},">enable\u003C/",{"type":14,"tag":75,"props":876,"children":877},{"class":88},[878],{"type":19,"value":869},{"type":14,"tag":75,"props":880,"children":881},{"class":82},[882],{"type":19,"value":96},{"type":14,"tag":75,"props":884,"children":885},{"class":77,"line":495},[886,890,895,899,903],{"type":14,"tag":75,"props":887,"children":888},{"class":82},[889],{"type":19,"value":814},{"type":14,"tag":75,"props":891,"children":892},{"class":88},[893],{"type":19,"value":894},"Nullable",{"type":14,"tag":75,"props":896,"children":897},{"class":82},[898],{"type":19,"value":874},{"type":14,"tag":75,"props":900,"children":901},{"class":88},[902],{"type":19,"value":894},{"type":14,"tag":75,"props":904,"children":905},{"class":82},[906],{"type":19,"value":96},{"type":14,"tag":75,"props":908,"children":909},{"class":77,"line":508},[910,915,919],{"type":14,"tag":75,"props":911,"children":912},{"class":82},[913],{"type":19,"value":914},"    \u003C/",{"type":14,"tag":75,"props":916,"children":917},{"class":88},[918],{"type":19,"value":802},{"type":14,"tag":75,"props":920,"children":921},{"class":82},[922],{"type":19,"value":96},{"type":14,"tag":75,"props":924,"children":925},{"class":77,"line":529},[926],{"type":14,"tag":75,"props":927,"children":928},{},[929],{"type":19,"value":930},"\n",{"type":14,"tag":75,"props":932,"children":933},{"class":77,"line":561},[934,938,942],{"type":14,"tag":75,"props":935,"children":936},{"class":82},[937],{"type":19,"value":797},{"type":14,"tag":75,"props":939,"children":940},{"class":88},[941],{"type":19,"value":802},{"type":14,"tag":75,"props":943,"children":944},{"class":82},[945],{"type":19,"value":96},{"type":14,"tag":75,"props":947,"children":949},{"class":77,"line":948},10,[950,954,959,964,968],{"type":14,"tag":75,"props":951,"children":952},{"class":82},[953],{"type":19,"value":814},{"type":14,"tag":75,"props":955,"children":956},{"class":88},[957],{"type":19,"value":958},"XdtDll",{"type":14,"tag":75,"props":960,"children":961},{"class":82},[962],{"type":19,"value":963},">$(MSBuildExtensionsPath)\\Microsoft\\VisualStudio\\v$(VisualStudioVersion)\\Web\\Microsoft.Web.Publishing.Tasks.dll\u003C/",{"type":14,"tag":75,"props":965,"children":966},{"class":88},[967],{"type":19,"value":958},{"type":14,"tag":75,"props":969,"children":970},{"class":82},[971],{"type":19,"value":96},{"type":14,"tag":75,"props":973,"children":975},{"class":77,"line":974},11,[976,980,985,990,994],{"type":14,"tag":75,"props":977,"children":978},{"class":82},[979],{"type":19,"value":814},{"type":14,"tag":75,"props":981,"children":982},{"class":88},[983],{"type":19,"value":984},"OutputDir",{"type":14,"tag":75,"props":986,"children":987},{"class":82},[988],{"type":19,"value":989},">$(MSBuildThisFileDirectory)bin\\Output\\\u003C/",{"type":14,"tag":75,"props":991,"children":992},{"class":88},[993],{"type":19,"value":984},{"type":14,"tag":75,"props":995,"children":996},{"class":82},[997],{"type":19,"value":96},{"type":14,"tag":75,"props":999,"children":1001},{"class":77,"line":1000},12,[1002,1006,1010],{"type":14,"tag":75,"props":1003,"children":1004},{"class":82},[1005],{"type":19,"value":914},{"type":14,"tag":75,"props":1007,"children":1008},{"class":88},[1009],{"type":19,"value":802},{"type":14,"tag":75,"props":1011,"children":1012},{"class":82},[1013],{"type":19,"value":96},{"type":14,"tag":75,"props":1015,"children":1017},{"class":77,"line":1016},13,[1018],{"type":14,"tag":75,"props":1019,"children":1020},{},[1021],{"type":19,"value":930},{"type":14,"tag":75,"props":1023,"children":1025},{"class":77,"line":1024},14,[1026,1030,1035,1039,1044,1048,1053,1057,1062,1066,1071],{"type":14,"tag":75,"props":1027,"children":1028},{"class":82},[1029],{"type":19,"value":797},{"type":14,"tag":75,"props":1031,"children":1032},{"class":88},[1033],{"type":19,"value":1034},"UsingTask",{"type":14,"tag":75,"props":1036,"children":1037},{"class":82},[1038],{"type":19,"value":407},{"type":14,"tag":75,"props":1040,"children":1041},{"class":358},[1042],{"type":19,"value":1043},"TaskName",{"type":14,"tag":75,"props":1045,"children":1046},{"class":82},[1047],{"type":19,"value":366},{"type":14,"tag":75,"props":1049,"children":1050},{"class":369},[1051],{"type":19,"value":1052},"\"TransformXml\"",{"type":14,"tag":75,"props":1054,"children":1055},{"class":82},[1056],{"type":19,"value":407},{"type":14,"tag":75,"props":1058,"children":1059},{"class":358},[1060],{"type":19,"value":1061},"AssemblyFile",{"type":14,"tag":75,"props":1063,"children":1064},{"class":82},[1065],{"type":19,"value":366},{"type":14,"tag":75,"props":1067,"children":1068},{"class":369},[1069],{"type":19,"value":1070},"\"$(XdtDll)\"",{"type":14,"tag":75,"props":1072,"children":1073},{"class":82},[1074],{"type":19,"value":1075}," />\n",{"type":14,"tag":75,"props":1077,"children":1079},{"class":77,"line":1078},15,[1080],{"type":14,"tag":75,"props":1081,"children":1082},{},[1083],{"type":19,"value":930},{"type":14,"tag":75,"props":1085,"children":1087},{"class":77,"line":1086},16,[1088,1092,1097],{"type":14,"tag":75,"props":1089,"children":1090},{"class":82},[1091],{"type":19,"value":797},{"type":14,"tag":75,"props":1093,"children":1094},{"class":88},[1095],{"type":19,"value":1096},"ItemGroup",{"type":14,"tag":75,"props":1098,"children":1099},{"class":82},[1100],{"type":19,"value":96},{"type":14,"tag":75,"props":1102,"children":1104},{"class":77,"line":1103},17,[1105,1110],{"type":14,"tag":75,"props":1106,"children":1107},{"class":82},[1108],{"type":19,"value":1109},"        ",{"type":14,"tag":75,"props":1111,"children":1113},{"class":1112},"ct-463487",[1114],{"type":19,"value":1115},"\u003C!-- 여기에 항목을 더 추가하세요 -->\n",{"type":14,"tag":75,"props":1117,"children":1119},{"class":77,"line":1118},18,[1120,1124,1129,1133,1138,1142,1147],{"type":14,"tag":75,"props":1121,"children":1122},{"class":82},[1123],{"type":19,"value":814},{"type":14,"tag":75,"props":1125,"children":1126},{"class":88},[1127],{"type":19,"value":1128},"XmlTransform",{"type":14,"tag":75,"props":1130,"children":1131},{"class":82},[1132],{"type":19,"value":407},{"type":14,"tag":75,"props":1134,"children":1135},{"class":358},[1136],{"type":19,"value":1137},"Include",{"type":14,"tag":75,"props":1139,"children":1140},{"class":82},[1141],{"type":19,"value":366},{"type":14,"tag":75,"props":1143,"children":1144},{"class":369},[1145],{"type":19,"value":1146},"\"Config\"",{"type":14,"tag":75,"props":1148,"children":1149},{"class":82},[1150],{"type":19,"value":96},{"type":14,"tag":75,"props":1152,"children":1154},{"class":77,"line":1153},19,[1155,1160,1165,1170,1174],{"type":14,"tag":75,"props":1156,"children":1157},{"class":82},[1158],{"type":19,"value":1159},"            \u003C",{"type":14,"tag":75,"props":1161,"children":1162},{"class":88},[1163],{"type":19,"value":1164},"Source",{"type":14,"tag":75,"props":1166,"children":1167},{"class":82},[1168],{"type":19,"value":1169},">Base\\dev.config.xml\u003C/",{"type":14,"tag":75,"props":1171,"children":1172},{"class":88},[1173],{"type":19,"value":1164},{"type":14,"tag":75,"props":1175,"children":1176},{"class":82},[1177],{"type":19,"value":96},{"type":14,"tag":75,"props":1179,"children":1181},{"class":77,"line":1180},20,[1182,1186,1191,1196,1200],{"type":14,"tag":75,"props":1183,"children":1184},{"class":82},[1185],{"type":19,"value":1159},{"type":14,"tag":75,"props":1187,"children":1188},{"class":88},[1189],{"type":19,"value":1190},"Transform",{"type":14,"tag":75,"props":1192,"children":1193},{"class":82},[1194],{"type":19,"value":1195},">Prod\\prod.config.xml\u003C/",{"type":14,"tag":75,"props":1197,"children":1198},{"class":88},[1199],{"type":19,"value":1190},{"type":14,"tag":75,"props":1201,"children":1202},{"class":82},[1203],{"type":19,"value":96},{"type":14,"tag":75,"props":1205,"children":1207},{"class":77,"line":1206},21,[1208,1212,1217,1222,1226],{"type":14,"tag":75,"props":1209,"children":1210},{"class":82},[1211],{"type":19,"value":1159},{"type":14,"tag":75,"props":1213,"children":1214},{"class":88},[1215],{"type":19,"value":1216},"Destination",{"type":14,"tag":75,"props":1218,"children":1219},{"class":82},[1220],{"type":19,"value":1221},">$(OutputDir)prod.config.xml\u003C/",{"type":14,"tag":75,"props":1223,"children":1224},{"class":88},[1225],{"type":19,"value":1216},{"type":14,"tag":75,"props":1227,"children":1228},{"class":82},[1229],{"type":19,"value":96},{"type":14,"tag":75,"props":1231,"children":1233},{"class":77,"line":1232},22,[1234,1239,1243],{"type":14,"tag":75,"props":1235,"children":1236},{"class":82},[1237],{"type":19,"value":1238},"        \u003C/",{"type":14,"tag":75,"props":1240,"children":1241},{"class":88},[1242],{"type":19,"value":1128},{"type":14,"tag":75,"props":1244,"children":1245},{"class":82},[1246],{"type":19,"value":96},{"type":14,"tag":75,"props":1248,"children":1250},{"class":77,"line":1249},23,[1251,1255,1259],{"type":14,"tag":75,"props":1252,"children":1253},{"class":82},[1254],{"type":19,"value":914},{"type":14,"tag":75,"props":1256,"children":1257},{"class":88},[1258],{"type":19,"value":1096},{"type":14,"tag":75,"props":1260,"children":1261},{"class":82},[1262],{"type":19,"value":96},{"type":14,"tag":75,"props":1264,"children":1266},{"class":77,"line":1265},24,[1267],{"type":14,"tag":75,"props":1268,"children":1269},{},[1270],{"type":19,"value":930},{"type":14,"tag":75,"props":1272,"children":1274},{"class":77,"line":1273},25,[1275,1279,1284,1288,1293,1297,1301,1305,1310,1314,1319],{"type":14,"tag":75,"props":1276,"children":1277},{"class":82},[1278],{"type":19,"value":797},{"type":14,"tag":75,"props":1280,"children":1281},{"class":88},[1282],{"type":19,"value":1283},"Target",{"type":14,"tag":75,"props":1285,"children":1286},{"class":82},[1287],{"type":19,"value":407},{"type":14,"tag":75,"props":1289,"children":1290},{"class":358},[1291],{"type":19,"value":1292},"Name",{"type":14,"tag":75,"props":1294,"children":1295},{"class":82},[1296],{"type":19,"value":366},{"type":14,"tag":75,"props":1298,"children":1299},{"class":369},[1300],{"type":19,"value":785},{"type":14,"tag":75,"props":1302,"children":1303},{"class":82},[1304],{"type":19,"value":407},{"type":14,"tag":75,"props":1306,"children":1307},{"class":358},[1308],{"type":19,"value":1309},"BeforeTargets",{"type":14,"tag":75,"props":1311,"children":1312},{"class":82},[1313],{"type":19,"value":366},{"type":14,"tag":75,"props":1315,"children":1316},{"class":369},[1317],{"type":19,"value":1318},"\"Build\"",{"type":14,"tag":75,"props":1320,"children":1321},{"class":82},[1322],{"type":19,"value":96},{"type":14,"tag":75,"props":1324,"children":1326},{"class":77,"line":1325},26,[1327,1331,1336,1340,1345,1349,1354],{"type":14,"tag":75,"props":1328,"children":1329},{"class":82},[1330],{"type":19,"value":814},{"type":14,"tag":75,"props":1332,"children":1333},{"class":88},[1334],{"type":19,"value":1335},"MakeDir",{"type":14,"tag":75,"props":1337,"children":1338},{"class":82},[1339],{"type":19,"value":407},{"type":14,"tag":75,"props":1341,"children":1342},{"class":358},[1343],{"type":19,"value":1344},"Directories",{"type":14,"tag":75,"props":1346,"children":1347},{"class":82},[1348],{"type":19,"value":366},{"type":14,"tag":75,"props":1350,"children":1351},{"class":369},[1352],{"type":19,"value":1353},"\"$(OutputDir)\"",{"type":14,"tag":75,"props":1355,"children":1356},{"class":82},[1357],{"type":19,"value":1075},{"type":14,"tag":75,"props":1359,"children":1361},{"class":77,"line":1360},27,[1362,1366,1371,1375,1379,1383,1388,1392,1396,1400,1405,1409,1413,1417,1422,1426,1431,1435,1440],{"type":14,"tag":75,"props":1363,"children":1364},{"class":82},[1365],{"type":19,"value":814},{"type":14,"tag":75,"props":1367,"children":1368},{"class":88},[1369],{"type":19,"value":1370},"TransformXml",{"type":14,"tag":75,"props":1372,"children":1373},{"class":82},[1374],{"type":19,"value":407},{"type":14,"tag":75,"props":1376,"children":1377},{"class":358},[1378],{"type":19,"value":1164},{"type":14,"tag":75,"props":1380,"children":1381},{"class":82},[1382],{"type":19,"value":366},{"type":14,"tag":75,"props":1384,"children":1385},{"class":369},[1386],{"type":19,"value":1387},"\"%(XmlTransform.Source)\"",{"type":14,"tag":75,"props":1389,"children":1390},{"class":82},[1391],{"type":19,"value":407},{"type":14,"tag":75,"props":1393,"children":1394},{"class":358},[1395],{"type":19,"value":1190},{"type":14,"tag":75,"props":1397,"children":1398},{"class":82},[1399],{"type":19,"value":366},{"type":14,"tag":75,"props":1401,"children":1402},{"class":369},[1403],{"type":19,"value":1404},"\"%(XmlTransform.Transform)\"",{"type":14,"tag":75,"props":1406,"children":1407},{"class":82},[1408],{"type":19,"value":407},{"type":14,"tag":75,"props":1410,"children":1411},{"class":358},[1412],{"type":19,"value":1216},{"type":14,"tag":75,"props":1414,"children":1415},{"class":82},[1416],{"type":19,"value":366},{"type":14,"tag":75,"props":1418,"children":1419},{"class":369},[1420],{"type":19,"value":1421},"\"%(XmlTransform.Destination)\"",{"type":14,"tag":75,"props":1423,"children":1424},{"class":82},[1425],{"type":19,"value":407},{"type":14,"tag":75,"props":1427,"children":1428},{"class":358},[1429],{"type":19,"value":1430},"StackTrace",{"type":14,"tag":75,"props":1432,"children":1433},{"class":82},[1434],{"type":19,"value":366},{"type":14,"tag":75,"props":1436,"children":1437},{"class":369},[1438],{"type":19,"value":1439},"\"true\"",{"type":14,"tag":75,"props":1441,"children":1442},{"class":82},[1443],{"type":19,"value":1075},{"type":14,"tag":75,"props":1445,"children":1447},{"class":77,"line":1446},28,[1448,1452,1457,1461,1466,1470,1475,1479,1484,1488,1493],{"type":14,"tag":75,"props":1449,"children":1450},{"class":82},[1451],{"type":19,"value":814},{"type":14,"tag":75,"props":1453,"children":1454},{"class":88},[1455],{"type":19,"value":1456},"Message",{"type":14,"tag":75,"props":1458,"children":1459},{"class":82},[1460],{"type":19,"value":407},{"type":14,"tag":75,"props":1462,"children":1463},{"class":358},[1464],{"type":19,"value":1465},"Text",{"type":14,"tag":75,"props":1467,"children":1468},{"class":82},[1469],{"type":19,"value":366},{"type":14,"tag":75,"props":1471,"children":1472},{"class":369},[1473],{"type":19,"value":1474},"\"Transformed → %(XmlTransform.Destination)\"",{"type":14,"tag":75,"props":1476,"children":1477},{"class":82},[1478],{"type":19,"value":407},{"type":14,"tag":75,"props":1480,"children":1481},{"class":358},[1482],{"type":19,"value":1483},"Importance",{"type":14,"tag":75,"props":1485,"children":1486},{"class":82},[1487],{"type":19,"value":366},{"type":14,"tag":75,"props":1489,"children":1490},{"class":369},[1491],{"type":19,"value":1492},"\"high\"",{"type":14,"tag":75,"props":1494,"children":1495},{"class":82},[1496],{"type":19,"value":1075},{"type":14,"tag":75,"props":1498,"children":1500},{"class":77,"line":1499},29,[1501,1505,1509],{"type":14,"tag":75,"props":1502,"children":1503},{"class":82},[1504],{"type":19,"value":914},{"type":14,"tag":75,"props":1506,"children":1507},{"class":88},[1508],{"type":19,"value":1283},{"type":14,"tag":75,"props":1510,"children":1511},{"class":82},[1512],{"type":19,"value":96},{"type":14,"tag":75,"props":1514,"children":1516},{"class":77,"line":1515},30,[1517,1521,1525],{"type":14,"tag":75,"props":1518,"children":1519},{"class":82},[1520],{"type":19,"value":184},{"type":14,"tag":75,"props":1522,"children":1523},{"class":88},[1524],{"type":19,"value":749},{"type":14,"tag":75,"props":1526,"children":1527},{"class":82},[1528],{"type":19,"value":193},{"type":14,"tag":1530,"props":1531,"children":1532},"blockquote",{},[1533],{"type":14,"tag":15,"props":1534,"children":1535},{},[1536,1541,1543,1547,1549,1554],{"type":14,"tag":581,"props":1537,"children":1538},{},[1539],{"type":19,"value":1540},"%(...)",{"type":19,"value":1542}," 배치 구문은 MSBuild가 항목당 한 번씩 ",{"type":14,"tag":581,"props":1544,"children":1545},{},[1546],{"type":19,"value":1370},{"type":19,"value":1548},"을 자동으로 실행한다는 것을 의미합니다. 따라서 반복문이 필요하지 않습니다.\n작업에 ",{"type":14,"tag":581,"props":1550,"children":1551},{},[1552],{"type":19,"value":1553},"StackTrace=\"true\"",{"type":19,"value":1555}," 옵션을 설정하면 변환이 실패할 경우 자세한 오류 출력이 제공되므로 작성 중에 유용합니다.",{"type":14,"tag":15,"props":1557,"children":1558},{},[1559],{"type":19,"value":1560},"다음에 핵심 요약입니다.",{"type":14,"tag":1562,"props":1563,"children":1564},"ul",{},[1565,1578,1602],{"type":14,"tag":1566,"props":1567,"children":1568},"li",{},[1569,1571,1576],{"type":19,"value":1570},"Visual Studio에 내장된 ",{"type":14,"tag":581,"props":1572,"children":1573},{},[1574],{"type":19,"value":1575},"Microsoft.Web.Publishing.Tasks.dll",{"type":19,"value":1577},"을 이용한 XDT 변환",{"type":14,"tag":1566,"props":1579,"children":1580},{},[1581,1586,1588,1593,1595,1600],{"type":14,"tag":581,"props":1582,"children":1583},{},[1584],{"type":19,"value":1585},"dev",{"type":19,"value":1587}," 및 ",{"type":14,"tag":581,"props":1589,"children":1590},{},[1591],{"type":19,"value":1592},"prod",{"type":19,"value":1594}," 구성 파일을 병합하고 ",{"type":14,"tag":581,"props":1596,"children":1597},{},[1598],{"type":19,"value":1599},"bin/Output",{"type":19,"value":1601}," 디렉터리에 출력하는 변환 파이프라인을 선언합니다.",{"type":14,"tag":1566,"props":1603,"children":1604},{},[1605,1607,1611],{"type":19,"value":1606},"변환할 파일 쌍이 여러 개인 경우, ",{"type":14,"tag":581,"props":1608,"children":1609},{},[1610],{"type":19,"value":1128},{"type":19,"value":1612}," 요소를 복제하고 파일에 따라 속성을 채우해세요.",{"type":14,"tag":15,"props":1614,"children":1615},{},[1616],{"type":19,"value":1617},"다음으로, 다음 명령어를 사용하여 변환을 실행하세요.",{"type":14,"tag":60,"props":1619,"children":1622},{"className":1620,"code":1621},[649],"msbuild WithXdt.csproj /t:Transform\n",[1623],{"type":14,"tag":68,"props":1624,"children":1625},{},[1626],{"type":14,"tag":60,"props":1627,"children":1628},{"__ignoreMap":7},[1629],{"type":14,"tag":75,"props":1630,"children":1631},{"class":77,"line":78},[1632],{"type":14,"tag":75,"props":1633,"children":1634},{},[1635],{"type":19,"value":1636},"msbuild WithXdt.csproj /t:Transform",{"type":14,"tag":15,"props":1638,"children":1639},{},[1640],{"type":19,"value":1641},"또는 더 간단하게",{"type":14,"tag":60,"props":1643,"children":1646},{"className":1644,"code":1645},[649],"dotnet build\n",[1647],{"type":14,"tag":68,"props":1648,"children":1649},{},[1650],{"type":14,"tag":60,"props":1651,"children":1652},{"__ignoreMap":7},[1653],{"type":14,"tag":75,"props":1654,"children":1655},{"class":77,"line":78},[1656],{"type":14,"tag":75,"props":1657,"children":1658},{},[1659],{"type":19,"value":1660},"dotnet build",{"type":14,"tag":15,"props":1662,"children":1663},{},[1664],{"type":19,"value":1665},"파일 트리는 이제 다음과 같아야 합니다.",{"type":14,"tag":60,"props":1667,"children":1670},{"className":1668,"code":1669},[649],"MyXmlTransforms/\n├── MyXmlTransforms.csproj\n├── Base/\n│   └── dev.config.xml\n├── Prod/\n│   └── prod.config.xml\n└── bin/\n    └── Output/              \u003C-- 빌드 시점에 생성됨\n",[1671],{"type":14,"tag":68,"props":1672,"children":1673},{},[1674],{"type":14,"tag":60,"props":1675,"children":1676},{"__ignoreMap":7},[1677,1684,1691,1699,1707,1715,1723,1731],{"type":14,"tag":75,"props":1678,"children":1679},{"class":77,"line":78},[1680],{"type":14,"tag":75,"props":1681,"children":1682},{},[1683],{"type":19,"value":665},{"type":14,"tag":75,"props":1685,"children":1686},{"class":77,"line":99},[1687],{"type":14,"tag":75,"props":1688,"children":1689},{},[1690],{"type":19,"value":673},{"type":14,"tag":75,"props":1692,"children":1693},{"class":77,"line":126},[1694],{"type":14,"tag":75,"props":1695,"children":1696},{},[1697],{"type":19,"value":1698},"├── Base/\n",{"type":14,"tag":75,"props":1700,"children":1701},{"class":77,"line":152},[1702],{"type":14,"tag":75,"props":1703,"children":1704},{},[1705],{"type":19,"value":1706},"│   └── dev.config.xml\n",{"type":14,"tag":75,"props":1708,"children":1709},{"class":77,"line":178},[1710],{"type":14,"tag":75,"props":1711,"children":1712},{},[1713],{"type":19,"value":1714},"├── Prod/\n",{"type":14,"tag":75,"props":1716,"children":1717},{"class":77,"line":495},[1718],{"type":14,"tag":75,"props":1719,"children":1720},{},[1721],{"type":19,"value":1722},"│   └── prod.config.xml\n",{"type":14,"tag":75,"props":1724,"children":1725},{"class":77,"line":508},[1726],{"type":14,"tag":75,"props":1727,"children":1728},{},[1729],{"type":19,"value":1730},"└── bin/\n",{"type":14,"tag":75,"props":1732,"children":1733},{"class":77,"line":529},[1734],{"type":14,"tag":75,"props":1735,"children":1736},{},[1737],{"type":19,"value":1738},"    └── Output/              \u003C-- 빌드 시점에 생성됨",{"type":14,"tag":49,"props":1740,"children":1742},{"id":1741},"일반적인-xdt-변환-속성",[1743],{"type":19,"value":1744},"일반적인 XDT 변환 속성",{"type":14,"tag":15,"props":1746,"children":1747},{},[1748],{"type":19,"value":1749},"여기는 가장 일반적인 변환 속성이 있습니다.",{"type":14,"tag":1751,"props":1752,"children":1753},"table",{},[1754,1782],{"type":14,"tag":1755,"props":1756,"children":1757},"thead",{},[1758],{"type":14,"tag":1759,"props":1760,"children":1761},"tr",{},[1762,1768,1775],{"type":14,"tag":1763,"props":1764,"children":1766},"th",{"align":1765},null,[1767],{"type":19,"value":51},{"type":14,"tag":1763,"props":1769,"children":1770},{"align":1765},[1771],{"type":14,"tag":581,"props":1772,"children":1773},{},[1774],{"type":19,"value":471},{"type":14,"tag":1763,"props":1776,"children":1777},{"align":1765},[1778],{"type":14,"tag":581,"props":1779,"children":1780},{},[1781],{"type":19,"value":450},{"type":14,"tag":1783,"props":1784,"children":1785},"tbody",{},[1786,1811,1842,1867,1895],{"type":14,"tag":1759,"props":1787,"children":1788},{},[1789,1795,1803],{"type":14,"tag":1790,"props":1791,"children":1792},"td",{"align":1765},[1793],{"type":19,"value":1794},"속성을 변경하다",{"type":14,"tag":1790,"props":1796,"children":1797},{"align":1765},[1798],{"type":14,"tag":581,"props":1799,"children":1800},{},[1801],{"type":19,"value":1802},"SetAttributes(attrName)",{"type":14,"tag":1790,"props":1804,"children":1805},{"align":1765},[1806],{"type":14,"tag":581,"props":1807,"children":1808},{},[1809],{"type":19,"value":1810},"Match(keyAttr)",{"type":14,"tag":1759,"props":1812,"children":1813},{},[1814,1819,1827],{"type":14,"tag":1790,"props":1815,"children":1816},{"align":1765},[1817],{"type":19,"value":1818},"전체 요소를 교체하다",{"type":14,"tag":1790,"props":1820,"children":1821},{"align":1765},[1822],{"type":14,"tag":581,"props":1823,"children":1824},{},[1825],{"type":19,"value":1826},"Replace",{"type":14,"tag":1790,"props":1828,"children":1829},{"align":1765},[1830,1835,1837],{"type":14,"tag":581,"props":1831,"children":1832},{},[1833],{"type":19,"value":1834},"Match(...)",{"type":19,"value":1836}," or ",{"type":14,"tag":581,"props":1838,"children":1839},{},[1840],{"type":19,"value":1841},"XPath(...)",{"type":14,"tag":1759,"props":1843,"children":1844},{},[1845,1850,1858],{"type":14,"tag":1790,"props":1846,"children":1847},{"align":1765},[1848],{"type":19,"value":1849},"새 요소를 삽입하다",{"type":14,"tag":1790,"props":1851,"children":1852},{"align":1765},[1853],{"type":14,"tag":581,"props":1854,"children":1855},{},[1856],{"type":19,"value":1857},"Insert",{"type":14,"tag":1790,"props":1859,"children":1860},{"align":1765},[1861],{"type":14,"tag":1862,"props":1863,"children":1864},"em",{},[1865],{"type":19,"value":1866},"(필요 없음)",{"type":14,"tag":1759,"props":1868,"children":1869},{},[1870,1875,1883],{"type":14,"tag":1790,"props":1871,"children":1872},{"align":1765},[1873],{"type":19,"value":1874},"요소를 삭제하다",{"type":14,"tag":1790,"props":1876,"children":1877},{"align":1765},[1878],{"type":14,"tag":581,"props":1879,"children":1880},{},[1881],{"type":19,"value":1882},"Remove",{"type":14,"tag":1790,"props":1884,"children":1885},{"align":1765},[1886,1890,1891],{"type":14,"tag":581,"props":1887,"children":1888},{},[1889],{"type":19,"value":1834},{"type":19,"value":1836},{"type":14,"tag":581,"props":1892,"children":1893},{},[1894],{"type":19,"value":1841},{"type":14,"tag":1759,"props":1896,"children":1897},{},[1898,1903,1911],{"type":14,"tag":1790,"props":1899,"children":1900},{"align":1765},[1901],{"type":19,"value":1902},"속성을 삭제하다",{"type":14,"tag":1790,"props":1904,"children":1905},{"align":1765},[1906],{"type":14,"tag":581,"props":1907,"children":1908},{},[1909],{"type":19,"value":1910},"RemoveAttributes(attrName)",{"type":14,"tag":1790,"props":1912,"children":1913},{"align":1765},[1914],{"type":14,"tag":581,"props":1915,"children":1916},{},[1917],{"type":19,"value":1834},{"type":14,"tag":49,"props":1919,"children":1921},{"id":1920},"요약",[1922],{"type":19,"value":1920},{"type":14,"tag":15,"props":1924,"children":1925},{},[1926,1928,1937,1939,1946],{"type":19,"value":1927},"이 가이드에서는 XDT 변환 시나리오, 간단한 구문 및 프로젝트 설정에 대해 설명합니다. 참고 자료로 GitHub의 ",{"type":14,"tag":1929,"props":1930,"children":1934},"a",{"href":1931,"rel":1932},"https://github.com/data-miner00/Sandbox/tree/master/demo/XmlTransform/WithXdt",[1933],"nofollow",[1935],{"type":19,"value":1936},"유사 프로젝트",{"type":19,"value":1938},"를 확인하세요. 폴더 기반 변환에 대해서는 ",{"type":14,"tag":1929,"props":1940,"children":1943},{"href":1941,"rel":1942},"https://github.com/data-miner00/Sandbox/tree/master/demo/XmlTransform/WithXdtBatch",[1933],[1944],{"type":19,"value":1945},"이 프로젝트",{"type":19,"value":1947},"를 참조하세요.",{"type":14,"tag":49,"props":1949,"children":1951},{"id":1950},"참고",[1952],{"type":19,"value":1950},{"type":14,"tag":1954,"props":1955,"children":1961},"apa-reference",{"source":1956,"title":1957,"url":1958,"retrievedDate":1959,"organization":1960},"websites","Web.config Transformation Syntax for Web Project Deployment Using Visual Studio","https://sparkbyexamples.com/spark/apache-spark-installation-on-windows/","2026, May 3","Microsoft",[],{"type":14,"tag":1954,"props":1963,"children":1967},{"source":1956,"title":1964,"url":1965,"retrievedDate":1959,"publisher":1966},"Web Config Transform","https://logicwiki.co.uk/Web_Config_Transform","Logicmade Wiki",[],{"type":14,"tag":1954,"props":1969,"children":1974},{"source":1956,"title":1970,"url":1971,":authors":1972,"date":1973},"Xdt transform samples","https://github.com/projectkudu/kudu/wiki/Xdt-transform-samples","[\"Suwat, C\"]","2019, August 3",[],{"type":14,"tag":1954,"props":1976,"children":1979},{"source":1956,"title":1977,"url":1978,"retrievedDate":1959},"XPath Syntax","https://www.w3schools.com/xml/xpath_syntax.asp",[],{"type":14,"tag":1981,"children":1982},"style",[1983],{"type":19,"value":1984},".ct-947867{color:#24292F;}\n.dark .ct-947867{color:#C9D1D9;}\n.ct-241623{color:#116329;}\n.dark .ct-241623{color:#7EE787;}\n.ct-642681{color:#0550AE;}\n.dark .ct-642681{color:#79C0FF;}\n.ct-094461{color:#0A3069;}\n.dark .ct-094461{color:#A5D6FF;}\n.ct-463487{color:#6E7781;}\n.dark .ct-463487{color:#8B949E;}",{"title":7,"searchDepth":99,"depth":99,"links":1986},[1987,1988,1989,1990,1991,1992],{"id":51,"depth":99,"text":51},{"id":324,"depth":99,"text":327},{"id":630,"depth":99,"text":633},{"id":1741,"depth":99,"text":1744},{"id":1920,"depth":99,"text":1920},{"id":1950,"depth":99,"text":1950},"markdown","content:ko:articles:general:msbuild-xdt-transform.md","content","ko/articles/general/msbuild-xdt-transform.md","md"]