2

PowerShell スクリプトを実行する msbuild 構成にビルド後のステップがあります。Powershell スクリプトは、Powershell から直接呼び出すと完全に機能しますが、msbuild 経由では失敗します。

インポートからクラスを使用しようとすると失敗するようです: 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 &quot;&amp; { &amp;'$(ScriptLocation)' } &quot;" />

64ビットマシンでVS2010を使用しています。

ありがとう!

4

2 に答える 2

0

Visual Studio 2010 は 32 ビット プロセスです。その後、Powershell は 32 ビット プロセスとして実行されます。WebAdministration モジュールは 64 ビットのみです。%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exeforを使ってみてくださいPowerShellExe

于 2013-08-21T15:27:10.093 に答える