问题标签 [prebuild]

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.

0 投票
1 回答
658 浏览

visual-studio - 如何获取预构建事件修改的最新版本 AssemblyInfo.cs?

我目前正在玩 VS2010 中的构建前和构建后事件,试图将我的 SVN 版本号放入 AssemblyInfo.cs 文件中,从而编译到我的构建 dll 中。

在预构建中,我运行一个更新 AssemblyInfo.cs 文件的脚本,在我的构建后步骤中,我运行一个脚本将其重置为零。

我想这样做是因为如果我离开最新版本,那么 SVN 会将此视为更改,它将被提交,这会更新 SVN 版本号并因此导致另一个更改;这有点递归。

我遇到的问题是构建选择了文件的原始版本,而不是预构建步骤更新的版本。

所以:

如果(作为测试)我手动将文件中的版本号设置为:

然后预构建将其更新为:

然后后期构建将其更新为:

当我查看构建的 dll 时,版本是 1.0.0.123

我已经在构建开始之前检查了预构建步骤是否完成 - 但即使我强制等待很长时间(通过调用 notepad.exe 或其他方式)VS2010 仍然无法获取更新的文件。

您只需将 notepad.exe 放在预构建命令中即可看到此行为 - 然后在记事本运行时;去手动更改 AssemblyInfo.cs 文件。除非您关闭记事本,否则构建不会开始 - 但是一旦您关闭记事本,它将使用文件的原始版本进行构建。

我是否在预构建应该工作的方式中遗漏了一些东西?有什么方法可以强制构建拾取并使用更新的文件?

任何线索表示赞赏:)

0 投票
2 回答
1870 浏览

c - 如何在预构建中编译自动生成的 C 文件?

我有一个 Eclipse 项目,我需要在编译之前自动生成一些文件。我不想将此自动生成的文件放在我的存储库中,因此每次编译项目时,我都会执行预构建以自动生成这些文件。

问题是这个自动生成的文件是 *.c 和 *.h 文件,并且在我第一次编译项目时,会发生以下情况(按此顺序):

  • 预构建:自动生成一些 *.c 和 *.h
  • build: eclipse 不会构建这个自动生成的文件

如果我再次编译,这些文件将被编译。也许这是因为 eclipse 将编译哪些文件的发现过程。在开始编译之前,我们没有这个自动生成的 *.c 和 *.h 文件。

在我们第二次编译的时候,我们已经有了这个自动生成的文件,所以编译了这个文件。

0 投票
1 回答
661 浏览

visual-studio - Running a pre-build event on every file in a MSVC 2010 project

I'm trying to get Visual Studio 2010 to execute a FOR loop - just like the ones that can be done in a .bat file - as a pre-build event command... No luck this far.

Long story short, I'm trying to get Qt's moc.exe to iterate on all my header files at build time. If this work, another thing to achieve would be to include the generated moc_*.cpp files in the build process, but I'm not quite there right now.

Any idea ? Thanks a lot !

0 投票
2 回答
2074 浏览

visual-studio - 在构建解决方案中的任何项目之前运行的预构建事件

我编写了一个小程序来下载所有 NuGet 包以获得解决方案。我想设置一个预构建事件,每次构建时都会运行该程序。

但我需要它在第一个项目开始构建之前运行。我可以先查看当前正在构建的内容,然后将其放在该项目的预构建事件中,但这相当脆弱。每当我添加新项目或更新项目之间的引用时,我都必须仔细检查“第一个”构建项目是否仍然是第一个。

所以,我真正需要的是在任何建筑物真正开始之前做到这一点的方法。我听说过 Visual Studio 宏。但这些不是可以签入的东西,所以我宁愿不使用它们(但如果这是我唯一的选择,我会使用它们)。

0 投票
2 回答
884 浏览

visual-studio - 在预构建事件中引用“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\datasvcutil.exe”的间接方式

我在预构建事件中运行 datasvcutil.exe 命令。

datasvcutil.exe 位于“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”(在 64 位计算机上。)

我可以将其硬编码为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\datasvcutil.exe,但这似乎很脆弱。当假设的 .net v4.0.30320 出现时,我的预构建事件将不再起作用。

使用 Visual Studio 命令提示符,我可以在没有路径的情况下调用 datasvcutil.exe。我想知道是否有类似的间接方式可以从我的预构建事件命令行中调用它。

0 投票
2 回答
1693 浏览

c++ - 如何制作 C 宏预构建预处理器?

假设我有一个字符串,我想在我的代码中进行混淆处理。(此示例仅供学习。)

我的计划是用宏包装字符串文字,例如

并且,作为预构建步骤,通过我自己的预处理器运行我的源文件,以查找字符串的所有用法_MY_ENCRYPTION_MACRO并相应地混淆字符串。

我将如何使用 Visual C++ 进行这种预处理?

0 投票
4 回答
247 浏览

java - 编写预构建测试的最佳方法是什么

在开始构建 java 项目之前,我想检查代码中的一些标志和 xml 文件中的一些值。最好的方法是什么?你会写一个java类来做吗?你会只使用脚本吗?

我正在使用 Ant,我需要检查在我的类中设置为静态变量的一些标志是否具有正确的值。我可以编写单元测试,但在这种情况下,它们将在构建之后执行。我需要在它之前完成它。

我还应该补充一点,我正在使用 Windows

0 投票
3 回答
251 浏览

cruisecontrol.net - 即使 Soursecontrol 不可访问,Cruisecontrol 任务也可以执行

我已经部署了 CruiseControl.Net(版本 1.6.7981.1)服务器,它执行以下任务:

  1. 构建触发器
  2. 贴标机
  3. VSTS Soursecontrol 块(从 TFS 2010 服务器获取源代码)
  4. 在调试模式下构建代码
  5. 使用 Nanat 任务运行 NUnit 测试
  6. 合并 NUnit-Result.xml(发布者任务)

由于我每次运行 NUnit 任务之前都需要清除 NUnit-Result.xml 文件,因此我在 Nant.build 文件中添加了一个删除任务,该任务在 NUnit 任务运行之前删除 NUnit-results.xml。

现在我的问题是当我的构建触发时,如果我的 TFS 服务器不可访问,构建失败并且只有发布者任务运行,所以旧 Nunit 结果文件合并到失败的构建中。

我尝试运行“预构建”任务,但它仅在 TFS 服务器可访问时才有效。

现在我想要的是删除 Nunit-result.xml 的任务,即使我的 TFS 不可访问也可以运行(在源控制块之前或发布者块内/之后)

提前致谢

0 投票
2 回答
3050 浏览

linux - 如何检查 Ubuntu 上是否存在预构建的包

我正在尝试安装gtk-pixbuf 2.61.1,但它说它缺少TIFF library, 从它说的gnome 站点

在从源代码安装这些库之前,您应该检查您的操作系统供应商是否有这些库的预构建包,而这些库您尚未安装

我是新手,Ubuntu不确定如何在从源代码安装它们之前检查这些预构建的包是否存在。

0 投票
1 回答
199 浏览

c++ - 避免在 vs2010 中重建的最佳实践

我有一个解决方案,它的一个项目编译时间太长而且很少更改。这意味着如果开发人员“重建”整个解决方案将需要时间(尽管在这个特定项目中没有任何改变)。

有人建议我可能添加一些“预构建事件命令行”,但我将如何检查是否需要编译(我确实希望它编译它已更改)?并且 - 如果我能失败 - 这是一个好习惯吗?(在持续集成等方面)

如果不需要,即使某些开发人员确实意味着要为整个解决方案重建,也可以随意提出任何其他我可以避免重建的方法。