gpt4 book ai didi

powershell - Web.Config 在 Microsoft MSBuild 之外进行转换?

转载 作者:行者123 更新时间:2023-12-03 05:55:24 25 4
gpt4 key购买 nike

是否可以在 MSBuild 之外使用 Microsoft 的 XML 文档转换来准备 web.configs?我想使用 PowerShell 来执行这些转换,而不必通过 MSBuild 引擎运行它。如果 Microsoft 使用标准 XSLT,那么在 PowerShell 中就很容易做到。据我所知,我必须使用他们的 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll ,它需要构建引擎。谢谢

最佳答案

我创建了一个小函数来在 PowerShell 中处理 Microsoft 的 XML 文档转换。

我将 Microsoft.Web.XmlTransform.dll 文件从 Visual Studio 生成文件夹复制到我的脚本路径,但如果您愿意,可以从源文件夹引用它。

function XmlDocTransform($xml, $xdt)
{
if (!$xml -or !(Test-Path -path $xml -PathType Leaf)) {
throw "File not found. $xml";
}
if (!$xdt -or !(Test-Path -path $xdt -PathType Leaf)) {
throw "File not found. $xdt";
}

$scriptPath = (Get-Variable MyInvocation -Scope 1).Value.InvocationName | split-path -parent
Add-Type -LiteralPath "$scriptPath\Microsoft.Web.XmlTransform.dll"

$xmldoc = New-Object Microsoft.Web.XmlTransform.XmlTransformableDocument;
$xmldoc.PreserveWhitespace = $true
$xmldoc.Load($xml);

$transf = New-Object Microsoft.Web.XmlTransform.XmlTransformation($xdt);
if ($transf.Apply($xmldoc) -eq $false)
{
throw "Transformation failed."
}
$xmldoc.Save($xml);
}

使用 web.release.config 转换 web.config:

XmlDocTransform -xml "Web.config" -xdt "Web.Release.config"

或者,您可以使用 Sayed 的自引导 Xml 转换脚本,该脚本将为您获取 Microsoft.Xml.Xdt.dll:

https://gist.github.com/sayedihashimi/f1fdc4bfba74d398ec5b

关于powershell - Web.Config 在 Microsoft MSBuild 之外进行转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com