我在执行 powershell 脚本的 msbuild 配置中有一个后期构建步骤。如果我直接从 Powershell 调用它但通过 msbuild 失败,则 powershell 脚本可以完美运行。
在尝试使用导入中的类后似乎失败了:
Import-Module WebAdministration
我收到错误“错误:检索具有 CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154(REGDB_E_CLASSNOTREG))”
我尝试将 msbuild 加载的 powershell 版本从 64 位更改为 32 位,但没有区别。
这是 msbuild 步骤:
<Target Name="DevPostBuild">
<PropertyGroup>
<PowerShellExe Condition=" '$(PowerShellExe)'=='' ">%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe</PowerShellExe>
<ScriptLocation Condition=" '$(ScriptLocation)'=='' ">$(ProjectDir)DevPostBuild.ps1</ScriptLocation>
</PropertyGroup>
<Message Text="$(ScriptLocation)" />
<Exec Condition="Exists($(ScriptLocation))" Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted -command "& { &'$(ScriptLocation)' } "" />
我在 64 位机器上使用 VS2010。
谢谢!