问题标签 [custom-build-step]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - 用于生成标头的 Visual Studio 自定义构建步骤
我有一个带有标题的项目,通常根据需要使用命令行界面生成。但我想将此生成步骤添加到 Visual Studio 2015(工具集 v141,c++)作为自定义构建步骤。所以我做到了,它确实有效,但它生成它们很晚。实际上,如果文件尚不存在,则无法构建项目并出现错误“无法包含文件 myHeader.h”。
我通过添加项目属性 -> 自定义构建步骤 -> 常规添加了自定义构建步骤:
- 命令行:生成头文件的命令(有效)
- 输出:$(ProjectDir)生成的标题;%(输出)
- 执行之前:PreBuildEvent
实际上不需要输出,因为命令行会生成文件并自动将它们放在 rigth 文件夹中。但如果我不指定输出文件夹,它就不起作用。
执行之前可能是我的问题所在。但我不知道要添加哪个选项。这个似乎还不错。
编辑有些奇怪的是,它有时会在构建之前成功创建它,但如果我删除它们并再次构建。它们不再生成,项目也不会构建。
EDIT2 实际上只有在我修改项目属性时才有效,因为它强制重新生成所有需求。否则,如果我像往常一样构建,它会跳过自定义 buld 步骤,因为 Visual Studio 认为它是最新的。
c++ - Visual Studio 删除共享的 .pch 文件,以及有关自定义构建步骤的问题
我尝试使用共享的 .pch 文件,该文件在一个项目中编译并在其他项目中使用。
但是,如果 PCH 项目的 .pdb 文件名与其他项目的 .pdb 文件名不同,则会删除 .pch 文件。
此页面没有回答问题:https ://devblogs.microsoft.com/cppblog/shared-pch-usage-sample-in-visual-studio/
我不想为所有 PDB 使用相同的名称。
问题:
1)为什么.pch文件在其他项目编译开始时被删除,导致C1083错误(.pch not found),如果PDB名称不相等,不像那个页面?
2)我使用 COPY 命令复制 pch.pdb 和 pch.idb 文件,如果复制的 pch.pdb 应该像依赖项目的 PDB 一样命名,是否有 RENAME 命令或其他东西?我在哪里可以找到自定义构建步骤命令的完整列表?
3)我不明白自定义构建步骤中“附加依赖项”和“输出”的目的。我可以将 .pch 文件名输入到依赖项列表中,这样它就不会被删除吗?输出列表是否需要包含依赖项目的 PDB 名称或 pch.pdb,或两者都包含?
visual-studio - Visual Studio 停止执行自定义构建步骤
不知道如何解决这个问题,也许有人以前遇到过这个问题并且可以提示在哪里看。
问题是我的 Visual Studio 项目具有分配给它的自定义构建 tep 的 proto 文件:
..\*some path to a protoc.exe*\protoc --proto_path=%(RootDir)%(Directory) --cpp_out=%(RootDir)%(Directory) %(FullPath)
一切正常,直到有一天它停止了,我不知道为什么。也许我搞砸了一些环境变量或一些设置或其他东西。当我使用 CmakeGui 生成 Visual Studio 项目时,该问题还扩展到其他具有一些自定义构建步骤的项目。这些步骤有一个描述集“Compiling %(Filename).proto...”,它不会出现在输出中。几乎就好像它被完全忽略了,但编译器无法构建项目,因为项目中存在对生成文件的引用。
任何有关如何解决此问题的建议将不胜感激。
msbuild - 自定义构建规则标记检查 Visual Studio 2019 中更改的目录?
让我们把晦涩的问题变得简单......
我们有一个由许多项目组成的解决方案,其中一些项目使用 3rd 方的东西设置了自定义构建事件,用于一些黑暗魔法编译,看起来像这样:
在我们将 VS2015 切换到 VS2019 之前,这一直正常工作,因为现在在编译期间它报告说:
Project is not up-to-date: build output 'd:\projects\program\app\src\plugins\shared\' is missing
. 这或多或少没问题,但它迫使编译器也重新编译该项目的依赖项,这开始真的很烦人,因为即使没有进行任何更改,每次都需要重建几个项目。
我发现问题出在这行自定义构建:
从这部分更准确地说:%(RelativeDir)%(Outputs)作为在同一标记中检查.cpp和.h文件不会产生任何问题。所以我删除了这个目录检查。删除这段代码后,项目会正确编译,并且不会整天重新编译。
那么为什么自定义构建的输出检查现在可以正常工作,只是文件和目录会产生这种问题呢?
是的,检查的目录存在,它指的是现有的正确路径。
visual-studio-code - 没有构建步骤的 VS 代码项目
与代码
我正在处理没有构建步骤的前端项目(html/js/css)。我想问一下,是否有一种方法可以使 VS 代码中的功能(例如“ctrl + click”),页面建议上的活动方法起作用?我们的 repo 中的文件路径与服务器上的真实路径不同。在整个项目“ctrl + t”中寻找方法并不痛苦,因为有很多重复项。我想知道是否可以将浏览器与 VS 代码连接以预编译静态页面并获得诸如 chrome 控制台之类的建议。或者,如果您有其他想法可以尝试,我将不胜感激。
typescript - 将构建步骤添加到复合项目的 TypeScript 编译器
有没有办法可以挂接到命令tsc --build
中,以便在复合 TypeScript 项目中利用额外的构建步骤?
我有一个包含许多 TypeScript 项目的 monorepo。但是每个人在构建时都需要一个额外的步骤,将 Joi 模式转换为 TypeScript 定义。
显然,我可以简单地从 npm 运行脚本,但该tsc --build
命令实际上会构建tsconfig.json
文件中引用的所有项目,这意味着我可以使用一个命令构建所有内容。但是当它构建时,我需要一种方法来挂钩每个构建,以便每个项目也可以为引用的每个(或某些)项目添加这个 Joi -> TypeScript 步骤。
有没有办法做到这一点?