我正在使用MSDeploy通过IIS Import和命令行部署应用程序。
我通过将defaultValue属性设置为空字符串来设置一个不能为null的参数。我还指定它是一个Enumerable和可能的值。
以下是我的parameters.xml文件:
<parameters>
<parameter name="MyKey" description="Please select a value from the list" defaultValue="">
<parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='MyKey']/@value">
</parameterentry>
<parameterValidation kind="Enumeration" validationString="value1,value2,value3"/>
</parameter>
</parameters>
通过IIS导入应用程序选项工作完美,但在使用命令行时使用以下命令:
msdeploy -source:package='C:\Package\MyApp.zip' -dest:auto,computerName="https://example.com:8172/MSDeploy.axd?site=MyIISSite",authtype="NTLM",includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\Package\MyApp.SetParameters.xml" -whatif -setParam:name=MyKey,value=value1 -enableRule:AppOffline -allowUntrusted
抛出错误“'MyKey'参数不能为null或为空”。
-setParam不是为parameters.xml文件中指定的参数提供值的选项吗?如果我在定义参数时将默认值设置为允许的选项之一,但默认情况下不希望在此处具有任何值,则它可以工作。