Visual studio 如何从GitHub操作中升级Visual Studio项目?
可以使用Visual studio 如何从GitHub操作中升级Visual Studio项目?,visual-studio,github-actions,Visual Studio,Github Actions,可以使用devenv.exe命令从命令行升级Visual Studio项目,如下所示: devenv.exe SOLUTION_PATH /Upgrade 其中,SOLUTION_PATH是指向Visual Studio解决方案(或项目)文件的路径 作为GitHub操作的一部分,执行此步骤最直接的方法是什么 我尝试过的 到目前为止,我还没有找到将devenv.exe放入GitHub操作路径的方法。此操作似乎没有预生成的操作步骤(setup msbuild步骤无法使devenv可用)。甚至对
devenv.exe
命令从命令行升级Visual Studio项目,如下所示:
devenv.exe SOLUTION_PATH /Upgrade
其中,SOLUTION_PATH是指向Visual Studio解决方案(或项目)文件的路径
作为GitHub操作的一部分,执行此步骤最直接的方法是什么
我尝试过的
到目前为止,我还没有找到将devenv.exe
放入GitHub操作路径的方法。此操作似乎没有预生成的操作步骤(setup msbuild
步骤无法使devenv
可用)。甚至对路径进行硬编码,例如
MSDEVENV_PATH: ${{'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.com'}}
... then later ...
run: ${{env.MSDEVENV_PATH}} ${{env.SOLUTION_FILE_PATH}} /Upgrade
失败,因为路径包含空格,并且我找不到添加引号的方法
但我知道这需要编写一个PowerShell脚本,并且可能需要对其进行签名,我不知道这在GitHub操作中是否有效。也许有一种更简单的方法,因此我的问题是:升级解决方案最直接的方法是什么?您需要一个基于Windows的运行程序
vswhere
是获取Visual Studio安装的各个组件的路径的工具,其文件夹位于路径()中
感谢@riQQ的部分回答,我目前有以下内容,它等待使用中建议的管道to
Out Null
完成输出,并等待生成的文件出现。请注意,我使用的是指向项目的路径,而不是指向解决方案的路径。(我无法让解决方案升级正常工作,尽管我从未找出原因。)
由于某些原因,当作为GitHub操作的一部分运行时,完成此步骤需要5分钟以上。在我的本地机器上只需要几秒钟。由于讨厌的文件轮询,我不认为这是一个理想的解决方案,但我在这里发布以供参考。这个代码>升级>代码>实际上是什么?@ KrZysZtoMaDeJ它将项目文件版本从.vcProjJ升级到vcxProj:这个解决方案真的对你有用吗?对我来说,我认为该步骤在异步devenv进程完成解决方案更新之前退出。缓慢的
devenv.exe
可能是由于此GitHub操作问题:
run: |
$devenv = & vswhere.exe '-property' productPath
Start-Process -FilePath $devenv -ArgumentList '${{env.SOLUTION_FILE_PATH}} /Upgrade' -Wait
run: |
$devenv = & vswhere.exe '-property' productPath
Write-Output "$devenv"
& $devenv "${{env.VCPROJ_FILE_PATH}}" /Upgrade /NoSplash | Out-Null
Write-Output "devenv launched"
while (!(Test-Path "${{env.VCXPROJ_FILE_PATH}}")) { Start-Sleep -Seconds 10 }
Write-Output "vcxproj found"
while (!(Test-Path "${{env.VCXPROJ_FILTERS_FILE_PATH}}")) { Start-Sleep -Seconds 10 }
Write-Output "vcxproj.filters found"
Start-Sleep -Seconds 10
Write-Output "done."