मेरे "myconfig" कॉन्फ़िगरेशन प्रोफ़ाइल में web.config के लिए परिवर्तन मेरे पास ऐप सेटिंग्स के तहत है:

<add key="my.config" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" value="derp" />

जब मैं इस परिवर्तन के साथ एमएसबिल्ड करता हूं तो मूल्य सही ढंग से बदल जाता है। अब मैं एक msdeploy पैकेज बनाना चाहता हूं और इस मान को परिनियोजन समय पर बदलना चाहता हूं।

मैं अपने प्रोजेक्ट रूट में इस पैरामीटर.एक्सएमएल को छोड़ देता हूं:

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
    <parameter name="my.config" description="sdfsdfsdfsd" defaultValue="fart">
        <parameterEntry kind="XmlFile"
                        scope="\\Web\.config$"
                        match="/configuration/appSettings/add[@my.config]/@value/text()" />
    </parameter>
</parameters>

मैं अपना पैकेज बनाता हूं

msbuild app.csproj /T:Package /p:Configuration=myconfigprofile;PackageLocation=mydeploy.zip

मैं mydeploy.SetParameters.xml देखता हूं

<?xml version="1.0" encoding="utf-8"?>

<parameters>

  <setParameter name="IIS Web Application Name" value="Default Web Site/myApp_deploy" />
  <setParameter name="my.config" value="fart" />

</parameters>

फिर मैं mydeploy.zip के अंदर पैरामीटर.एक्सएमएल में जाता हूं और इसे वहां भी देखता हूं:

<parameters>
  <parameter name="my.config" description="sdkflsdjfldfj" defaultValue="fart">
    <parameterEntry kind="XmlFile" scope="\\Web\.config$" match="/configuration/appSettings/add[@name='my.config']/@value/text()" />
  </parameter>
</parameters>

अब तक अच्छा लग रहा है, तो मैं तैनात करता हूं:

mydeploy.deploy.cmd /Y /M:server1

मैं तैनाती सर्वर पर web.config देखता हूं और मान रूपांतरित नहीं होता है। मुझे कोई त्रुटि नहीं दिख रही है, मैं इसे कैसे डिबग कर सकता हूं?

जब मैं पैरामीटर्स के साथ एमएसबिल्ड चलाता हूं। एक्सएमएल मौजूद है कि वहां क्या जादू होता है? पैकेज वेब परिनियोजन के लिए पैरामीटर के माध्यम से web.config को बदलने में सक्षम होने के लिए कैसे तैयार है?

3
red888 10 अप्रैल 2018, 22:03

2 जवाब

सबसे बढ़िया उत्तर

इस:

add[@name='my.config']

इसे बदलना पड़ा:

add[@key='my.config']

लेकिन बड़ा सवाल यह है कि मैं डिबग कैसे करूं? मुझे दस लाख बार कोशिश करनी पड़ी और अनुमान लगाया क्योंकि समस्या निवारण में सहायता के लिए मेरे पास शून्य त्रुटियां/लॉग थे। क्या वर्बोज़ लॉगिंग या किसी प्रकार का सत्यापनकर्ता या कुछ भी है?

डिबगिंग तकनीक के लिए मुझे यह कोशिश करने के लिए दिया गया है: msbuild MyProject.proj /t:go /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic

2
red888 16 अप्रैल 2018, 17:50

यदि आप MSDeploy का उपयोग कर रहे हैं तो आप निम्न का उपयोग करके परिनियोजन का पूरा आउटपुट प्राप्त कर सकते हैं:

Msdeploy -verb:sync -source:dirpath=C:\WebDeployDemo\Src -dest:dirpath=C:\WebDeployDemo\Dst -setParamFile=C:\WebDeployDemo\ParameterFile.xml -verbose >msdeploysync-verbose.log

यदि आप -verbose ध्वज का उपयोग करते हैं तो यह VSTS WebRM परिनियोजन डीबगिंग में मदद करता है।

स्रोत: https://docs.microsoft. com/en-us/iis/publish/troubleshooting-web-deploy/troubleshooting-web-deploy https://blogs.msdn.microsoft.com/spike/2012/10/12/using-msdeploy-to-update-and-remove-sections-in-web-config-a -सरल-उदाहरण/

1
befuddled 11 जुलाई 2018, 22:34