3

c# で PowerShell モジュールを開発する方法を学んでいますが、モジュールをインポートして PowerShell を起動するための Visual Studio 統合はありません。

PowerShell を起動して Import-Module $(TargetFileName) を実行するように MSBuild を構成したいと考えています。

プロジェクトをライブラリ プロジェクトとして構成し、デバッグ オプションを設定して PowerShell を起動し、コマンド ライン引数を -NoExit -Command "Import-Module .\PowerShellModule.dll" に設定しました。しかし、私はこの解決策に満足していません。

私の目標は、Visual Studio で F5 キーを押したときに、作業中のモジュールが読み込まれ、デバッガーが接続された状態で PowerShell を起動することです。理想的には、MSBuild マクロを使用して再利用可能なテンプレートを作成し、csproj.user ファイルの使用を避けたいと考えています。

関連する csproj.user ファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <StartArguments>-NoExit -Command "Import-Module .\PowerShellModule.dll "</StartArguments>
    <StartAction>Program</StartAction>
    <StartProgram>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</StartProgram>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
    <StartAction>Program</StartAction>
    <StartProgram>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</StartProgram>
    <StartArguments>
    </StartArguments>
  </PropertyGroup>
</Project>
4

1 に答える 1

2

csproj の PropertyGroup の下に次の行を追加することで、目的を達成できました。

<StartAction>Program</StartAction>
<StartProgram>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</StartProgram>
<StartArguments>-NoExit -Command "Import-Module .\$(AssemblyName).dll"</StartArguments>
于 2013-10-22T23:08:49.690 に答える