配置MSBuild以启动PowerShell并运行Import-Module $(TargetFileName)

时间:2013-10-19 03:23:33

标签: c# visual-studio powershell msbuild visual-studio-2013

我正在学习如何在c#中开发PowerShell模块,但是在导入模块的情况下没有Visual Studio集成来启动PowerShell。

我想配置MSBuild来启动PowerShell并运行Import-Module $(TargetFileName)。

我将项目配置为库项目并设置调试选项以启动PowerShell并将命令行参数设置为-NoExit -Command“Import-Module。\ PowerShellModule.dll”。但是我对这个解决方案不满意。

我的目标是使用我正在加载的模块启动PowerShell,并在Visual Studio中按F5时附加调试器。理想情况下,我想使用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>

1 个答案:

答案 0 :(得分:2)

通过在我的csproj中的PropertyGroup下添加以下行,我能够实现我想要的目标。

<StartAction>Program</StartAction>
<StartProgram>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</StartProgram>
<StartArguments>-NoExit -Command "Import-Module .\$(AssemblyName).dll"</StartArguments>