我正在学习如何在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>
答案 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>