运行 来自命令行的 vs2017 DevEnv 与 VS2017 安装程序项目
Running vs2017 DevEnv from command line with VS2017 Installer Projects
我继承了一堆安装了一些 Win 服务的 VS2010(啊!)安装程序项目 (.vdproj)
当然在 VS2017 中那些不再存在,但扩展 'VS2017 Installer Projects' 效果很好。我可以很好地打开它们并构建,从而生成 msi 文件。
然而,这也需要在 Jenkins 机器上完成 (运行ning Windows 7)。因此,我使用 Project Installer 扩展在 Jenkins 机器上安装了 VS2017,并尝试首先 运行 来自 IDE 的项目。效果很好。毫无问题地生成 .msi。
然后我尝试从命令行运行它:
"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\devenv.exe"
D:\ServiceInstaller\xxxServiceInstaller.vdproj /build
而且它不产生任何东西。我是不是想做一些不可能的事情?
当然有各种长期解决方案,例如 TopShelf、AdvancedInstaller、WIX 等,带有不错的 Jenkins 插件,但就目前而言,如果我能完成这项工作就太好了。
我制作了以下批处理文件以使用解决方案文件参数调用:
CALL "C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\Tools\VsDevCmd.bat"
"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe"
devenv /rebuild "Release|Win32" %1
还要确保在 Visual Studio Configuration Manager 安装程序中启用构建。
我继承了一堆安装了一些 Win 服务的 VS2010(啊!)安装程序项目 (.vdproj)
当然在 VS2017 中那些不再存在,但扩展 'VS2017 Installer Projects' 效果很好。我可以很好地打开它们并构建,从而生成 msi 文件。
然而,这也需要在 Jenkins 机器上完成 (运行ning Windows 7)。因此,我使用 Project Installer 扩展在 Jenkins 机器上安装了 VS2017,并尝试首先 运行 来自 IDE 的项目。效果很好。毫无问题地生成 .msi。
然后我尝试从命令行运行它:
"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\devenv.exe"
D:\ServiceInstaller\xxxServiceInstaller.vdproj /build
而且它不产生任何东西。我是不是想做一些不可能的事情?
当然有各种长期解决方案,例如 TopShelf、AdvancedInstaller、WIX 等,带有不错的 Jenkins 插件,但就目前而言,如果我能完成这项工作就太好了。
我制作了以下批处理文件以使用解决方案文件参数调用:
CALL "C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\Tools\VsDevCmd.bat"
"C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe"
devenv /rebuild "Release|Win32" %1
还要确保在 Visual Studio Configuration Manager 安装程序中启用构建。