在powershell的配置文件设置中,我有以下行:
set-alias vs startVisualStudio
function startVisualStudio {
Start-Process -FilePath "C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDEdevenv.exe" .\*.sln
}
当我导航到包含.sln
文件的目录并键入vs
时,Visual Studio会打开默认的开始屏幕,告诉我.*.sln could not be found
。我已经尝试了几种包含星号的方法,比如'backtick'*.sln
、/*.sln
等,但总是相同的消息。如果我用一个简单的.
替换.*.sln
并运行vs
,它确实会打开visualstudio中的当前目录,但不是一个解决方案。如何编写此函数以在Visual Studio中打开当前目录中的.sln?
*
不会被powershell打开,它只会将其传递给Visual Studio。Visual Studio也不会做,所以你必须自己做。在文件夹中查找所有解决方案文件并获取第一个。如果不存在.sln文件,则此操作将失败。
set-alias vs startVisualStudio
function startVisualStudio
{
$slnfile = (Get-ChildItem -Path . -Filter *.sln)[0].Name
Start-Process -FilePath "C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDEdevenv.exe" $slnfile
}
我也通过以下操作在子目录中递归地工作(Powershell 7.0(:
打开powershell,类型
echo $profile
打开您个人资料的位置,将以下内容保存到其中:
function vs
{
Get-ChildItem *.sln -Recurse | Invoke-Item
}
然后只需在文件夹中键入vs,它就会在任何包含的文件夹中打开解决方案文件