在Jenkins机器上需要DevEnv而不安装VS-需要api-ms-win-core-heap-l2-1-0.dll [英] Need DevEnv on Jenkins machine without installing VS - require api-ms-win-core-heap-l2-1-0.dll

查看:530
本文介绍了在Jenkins机器上需要DevEnv而不安装VS-需要api-ms-win-core-heap-l2-1-0.dll的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在jenkins机器(Windows Server 2012 R2)上构建vdproj,这需要devenv.exe而不是msbuild.我无法安装Visual Studio. MSI软件包需要Devenv.exe.

I need to build a vdproj on a jenkins machine (Windows Server 2012 R2)- which requires devenv.exe and not msbuild. I cannot install Visual Studio. Devenv.exe is required for a MSI package.

我使用了进程监视器,并确定我还需要一个文件来使devenv.exe正常工作:api-ms-win-core-heap-l2-1-0.dll

I've used process monitor and determined I require one more file for devenv.exe to work : api-ms-win-core-heap-l2-1-0.dll

此文件在我们拥有的任何开发人员计算机上都不存在,并且devenv.exe/devenv.com在开发人员计算机上可以运行.

This file does not exist on any developer machine that we have, and devenv.exe/devenv.com works on the dev machines.

在哪里可以找到此文件? 还有没有其他方法可以在没有Visual Studio的情况下构建vdproj?

Where can I find this file? Are there other ways to build a vdproj without Visual Studio?

推荐答案

虚拟机 :恐怕听起来有些毛茸茸.您能否使用虚拟机(上面装有Visual Studio)来构建有问题的Visual Studio Installer项目?

Virtual Machine: This sounds a little hairy I am afraid. Could you use a virtual machine - with Visual Studio on it - to build the Visual Studio Installer project in question?

WiX等 :转换为

WiX et al: Converting to WiX or another deployment tool besides Visual Studio Installer Projects would solve the problem? Is this a very complicated installer? Using the WiX decompiler dark.exe to decompile an MSI to WiX markup can help you convert the installer to WiX format. Quite a bit of WiX knowledge will be required to do this successfully. Maybe something a consultant could do quickly? Depends on the complexity.

Windows API设置 :据我了解, api-ms-win-core-heap-l2-1-0.dll

Windows API-set: As far as I know api-ms-win-core-heap-l2-1-0.dll is a Windows API-set, and not a real file or real dependency as such. These are new constructs in Windows. Try opening such an API-set file with Dependency Walker to see what they redirect to. Pretty mysterious these API-sets:

API集是Win32 API列表的强名称.惯例 为API集分配强名称的方法是使用看起来像是 dll名称.但是API集的目的是提供架构 API集名称及其关联的主机DLL之间的分隔 实施以提高应用程序的可移植性,因此您应该 将API集的名称视为唯一的字符串,而不是 作为dll名称.对于延迟加载,请使用API​​集的名称.

An API Set is a strong name for a list of Win32 APIs. The convention for assigning a strong name to an API Set is to use what appears to be a dll name. But the purpose of an API Set is to provide architectural separation between the API Set's name and its associated host DLL implementation for improved portability of your app, so you should think of an API Set's name as just a unique character string, and not as a dll name. For delay load, you use the name of the API Set.

API集依靠库加载器中的操作系统支持来 将命名空间重定向组件有效地引入到 库绑定过程.受各种输入的约束,包括API 设置名称和绑定(导入)上下文,库加载程序执行 对目标主机二进制文件的引用的运行时重定向 包含API集的适当实现.

API Sets rely on operating system support in the library loader to effectively introduce a namespace redirection component into the library binding process. Subject to various inputs, including the API Set name and the binding (import) context, the library loader performs a runtime redirection of the reference to a target host binary that houses the appropriate implementation of the API Set.

提供的实施合同和接口合同之间的脱钩 API Sets提供了许多工程上的优势,但也可以 可能减少进程中加载​​的DLL的数量.

The decoupling between implementation and interface contracts provided by API Sets offers many engineering advantages, but can also potentially reduce the number of DLLs loaded in a process.

在磁盘上,我可以在 %SystemRoot%\WinSxS %SystemRoot%\System32\downlevel 中找到大多数这些API集.

On disk I find most of these API-Sets in %SystemRoot%\WinSxS and %SystemRoot%\System32\downlevel.

有关此新API设置功能的技术方面的不错的文章 .

可执行文件 :尽管 devenv.exe 只是一个EXE文件,但我确实认为 > Visual Studio Installer项目,而不仅仅是dll导入表,这些表将很难正确设置,而将来的发行版又会在没有警告的情况下全部失败,又会如何呢? (如果发生了某些变化-最近,Visual Studio一直是一个非常动人的目标).

Complex Executable: Though devenv.exe is just an EXE file like any other, I do think there will be dependencies for Visual Studio Installer Projects beyond just dll import tables that will be very hard to set up properly, and what about future releases when all can fail without warning? (if something changes - Visual Studio has been a pretty moving target of late).

WiX快速入门 :以下是我一段时间以来发现的WiX最佳链接:

WiX Quick Start: Here are some of the best links that I have found over time for WiX:

  • Some WiX Quick Start Tips - chaotic, but upvoted. Must have been helpful.
  • Helge Klein's real-world WiX sample - do check this out.
  • Rainer Stropek's WiX Samples on Github - can be very helpful.
  • From MSI to WiX by Alex Schevchuk - aging content, but excellent.

这篇关于在Jenkins机器上需要DevEnv而不安装VS-需要api-ms-win-core-heap-l2-1-0.dll的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆