使用最新的 csproj 格式时,web 部署包未获取 parameters.xml

web deploy package not picking up parameters.xml when using latest csproj format

我有一个项目正在更新以使用新的 .csproj 格式。我们曾经使用以下 msbuild 参数:

msbuild Logging.sln /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="C:\Source\webdeploy"

创建了一个 .zip 网络部署包。此文件夹的顶层是 parameters.xml,它是正在构建的项目中自定义 parameters.xml 的副本。

自从迁移到新的 .csproj 格式后,仍在创建 .zip,但 .zip 中的 parameters.xml 文件不正确。我不确定它来自哪里,但它看起来就像一个默认文件:

<parameters>
  <parameter name="IIS Web Application Name" value="Default Web Site" tags="IisApp">
    <parameterEntry kind="ProviderPath" scope="IisApp" match="^C:\Source\Repos\Logging\src\Handler\obj\Debug\net461\win7-x86\PubTmp\Out\$" />
  </parameter>
</parameters>

有没有办法强制 msbuild 使用自定义 parameters.xml 文件?

编辑:看起来好像有一个 "declareParamFile" 参数 (https://technet.microsoft.com/en-us/library/dd569089(v=ws.10).aspx) 您可以传递到 msdeploy - 但不确定如何通过 msbuild 将其传递到 msdeploy。

不确定为什么它不接收您的 parameters.xml 文件,但您可以使用 ProjectParametersXMLFile 属性 - /p:ProjectParametersXMLFile="c:\parameter.xml".[=12= 传递自定义文件]