Visual Studio 中使用PowerShell作为PostBuild (生成前后)脚本
Visual Studio 使用cmd作为项目生成事件的Shell,但是cmd毕竟是上古产物,语法和规则个人不喜欢,遂想到使用powershell代替,但直到本随笔编写的时候,最新版的VS(VS2019)尚未支持使用其它Shell替代CMD。但是我们可以使用CMD调用PowerShell程序的脚本。以下为在Visual Studio中使用PowerShell作为生成前事件脚本的一个小例子。
1.在项目下添加名称为Pre-Build.ps1文件作为我们将要使用的PS脚本,编写其内容如下:
param( [string]$solutionDir, [string]$targetDir ) Write-Output ($msg = "This is your solutionDir:"+$solutionDir) Write-Output ($msg = "This is your targetDir:"+$targetDir)
功能很简单,即输出从外部传入的两个路径参数。
2.为项目的生成后事件编写如下内容:
powershell -ExecutionPolicy RemoteSigned -Command "&'$(ProjectDir)Pre-Build.ps1' '$(SolutionDir)' '$(TargetDir)'"
此文本内容既是传入当前的解决方案路径和生成路径到我们的脚本中,其中,个人认为有三个细节需要注意:
(1)-ExecutionPolicy RemoteSigned 即告诉PowerShell程序,可使用远程签证的策略执行PS脚本文件,通过设定此参数,我们将无需通过Set-ExecutionPolicy预先设定PowerShell的全局执行策略。
(2)三个字符串参数值需要加上引号,以避免路径中出现空格,这个应该是个老生常谈的问题了。
(3)所使用的powershell脚本文件和其使用的参数许使用单引号包含,powershell文件前需使用一个&以告诉powershell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用