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 "& { &'$(ScriptLocation)' } "" />
64ビットマシンでVS2010を使用しています。
ありがとう!