问题标签 [pre-build-event]

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 回答
623 浏览

.net - 展开预构建事件的参数中的文件列表

我正在尝试运行一个预构建事件,它将目录中的所有 JavaScript 文件传递​​给 MS 的 Ajax Minifier。不幸的是,该工具将文件名作为单独的参数排除在外(它无法解析“*.js”)。我有很多 JavaScript 文件,我真的不想在预构建事件窗口中单独列出它们。

这是我当前的预构建命令:

有谁知道正确的语法(或者甚至有一个)来使它做你期望它做的事情?

感谢您的任何帮助。

0 投票
1 回答
199 浏览

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

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

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

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

0 投票
1 回答
8415 浏览

visual-studio - Visual Studio Pre/Post Build Event - 将文件复制到安装项目中的目录

我在安装项目中有一个名为“SSRS_Repor”的文件夹。现在我希望当我为我的项目创建设置时,我想将我的项目中存在的名为“report”的文件夹中的所有文件复制到设置项目中存在的文件夹 SSRS_Repor 中。请指导我该怎么做。我知道这可以像为设置前/后构建事件编写脚本一样完成,但没有正确意识到。我有一个样本

但不清楚在哪里设置它。

如果有人详细告诉我所有步骤,那将会很有帮助。谢谢

0 投票
1 回答
1841 浏览

c# - Visual Studio 2010 $(PlatformName) 宏与 MSBuild.exe 不兼容

我在 Visual Studio 2010 中有一个 C# 项目,在预构建事件命令行中有这个:

结果是:

即使该窗口的宏部分建议PlatformName应该Any CPU在这种情况下出现(带空格):http: //i.imgur.com/xb3Y8.png(尽管 MSDN 似乎暗示 http 没有空格: //msdn.microsoft.com/en-us/library/42x5kfw4.aspx)。

这里发生了什么?不幸的是,"AnyCPU"这不是命令行上的有效平台,所以我无法继续。以上适用于/property:Platform="Any CPU"(带空格)。

是否有另一个我可以使用的宏,或者一些标志让 MSBuild 接受平台?

0 投票
1 回答
1729 浏览

visual-studio-2010 - 一种在控制台中查看预构建步骤输出的方法?

我在预构建步骤中编译了另一个需要时间的项目 - 在控制台中看不到任何输出,我只是在等待。有没有办法将它输出到控制台?

0 投票
0 回答
214 浏览

c# - ac# pre-build 事件何时发生?

获取程序的编译日期/时间的问题有时会出现在这里。我对如何做到这一点有了一个想法。所以我编写了一个小型控制台应用程序,它生成一个包含当前日期/时间的 CompileInfo.cs 文件......

public class CompileInfo {public readonly static string compileStamp = "2012-09-27 17:58:42";}

我将该文件添加到我的主项目中,并将微型控制台应用程序的调用添加到项目的预构建事件中。然后,在项目中,我可以访问 CompileInfo.compileStamp 以获取编译日期/时间。

每次构建都会调用控制台应用程序,但组装的 CompileInfo.cs 文件是旧文件 - 在控制台应用程序运行之前存在的文件。如果我再次构建项目,我总是会得到在上一次构建中创建的 CompileInfo.cs 文件。

我假设我对预构建事件的理解是有缺陷的。我将不胜感激。

我正在使用适用于 Windows 桌面的 Visual Studio Express 2012。

0 投票
1 回答
25111 浏览

visual-studio-2010 - 如何在 Visual Studio 中为安装/部署项目配置构建后事件

我的解决方案有两个项目。一个是我的实际项目,另一个是设置项目。

我的实际项目有一个报告文件夹,用于存储我的所有 ssrs 报告。我在安装项目中有一个名为“SSRS_Repor”的文件夹。现在我希望当我进行批量构建时重新生成我的项目设置,然后我想将我实际项目的报告文件夹中的所有文件复制到我的设置项目中的 SSRS_Repor。

如果我可以自动将文件从一个位置复制到我的安装项目的另一个文件夹,那么我可以摆脱手动复制 rdls 文件。我听说这可以通过设置/部署项目来实现。我在谷歌上搜索了这个以获取详细的分步说明,但我没有得到任何好的链接。所以请指导我该怎么做。

我也把它发布到另一个论坛,有人在下面告诉我:

所以没关系,但是我需要写什么才能将文件从一个位置复制到另一个位置?我不清楚。所以现在这对我来说最重要的是在安装生成期间为复制文件写什么。

我得到了另一个线索,如下所示。用于设置 Pre/Post Build Event 的脚本,但不正确。我有一个样本

复制 /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

上面的陈述或行对我来说不清楚。在我的情况下我需要写什么?我需要一个分步指南。

这是我的项目结构的截图

在此处输入图像描述

0 投票
1 回答
217 浏览

c# - 相当于 Visual Studio 2010 中 C# 项目的 VCPostBuildEventTool

我正在为 Visual Studio 编写一个插件,它为生产代码项目创建一个测试项目。它应该支持 C、C++ 和 C# 项目。对于 C/C++ 项目,我可以使用 VCPostBuildEventTool 以编程方式设置发布和预构建事件。

这就是我从 Project 对象中获取它的方式:

但是 C# 项目不能用作 VCProject,而且我找不到以编程方式访问它的构建前和构建后事件的方法。无论如何要这样做?

0 投票
3 回答
4305 浏览

deployment - MSBuild:部署项目中不包含的文件

我在一个 Web 项目上有一个 Pre-build 事件,它使用 node.js 缩小和连接 javascript 文件。这会在脚本文件夹中创建一个名为 BuiltScripts 的文件夹,该文件夹是脚本文件夹的副本,但文件已被缩小。当我进行部署时,我想发布脚本文件夹,包括其中的 BuiltScripts 文件夹。为此,我已将 BuiltScripts 文件夹添加到项目中。这不是一个理想的解决方案,因为:

  1. 我必须签出 BuiltScripts 文件夹才能构建,因为其中的文件是只读的,因为解决方案受源代码控制。这在签入时会产生麻烦,因为我签出了很多文件。
  2. 当我向项目添加新文件时,我必须确保我记得将其添加到 BuiltScripts 文件夹,否则将不会部署文件的构建版本。
  3. 我的构建将在构建服务器上失败,因为 BuiltScripts 文件夹中的文件在那里也是只读的。
  4. 在搜索文件和进行基于文本的搜索时,拥有两个同名文件副本是一个问题。

我想让构建服务器构建并缩小 javascript 文件作为预构建步骤,但我不希望将 BuiltScripts 文件夹添加到项目中。但是,当构建服务器最后打包项目时,我希望它复制带有构建过程输出的 BuiltScripts 文件夹。我怎样才能做到这一点?

0 投票
1 回答
244 浏览

c# - 计算的 const 值不断落后一个构建

在更新在预构建事件期间运行的构建增量程序时,我注意到一个潜在的问题,它可能会导致相当多的问题。第一次构建应用程序成功更新BuildInfo.cs并计算了所有 const 值。每次后续构建和成功执行预构建事件都会更新正确的文件(如下所示),但每个计算的 const 值都与上次构建相比已过期。

例如,该应用程序最初是使用AssemblyVersionStringat构建的1.0.0.0。上述程序按预期运行和编译。将其增加到 1.1 并第二次构建/运行应用程序ConstProblem/1.0作为它的输出并具有这个作为它的值

如您所见,已正确AssemblyVersionString更新1.1.0.0,但其余计算值未正确更新。如果我要第三次构建和执行(并增加到 1.2),它们将更新到上面提供的信息。

我已经确认预构建事件的输出文件正确输出了所有信息并以状态 0 退出以允许构建继续。我不知道为什么 const 总是落后。构建实用程序也是我编写的,它只是使用模板并在文件被签出时替换 BuildInfo.cs 的内容。

我的环境正在运行 Visual Studio 2010 Ultimate 并在 .Net 4 中编译。我已经在控制台和 Web 应用程序中重现了这一点。我从如何获取您自己的程序集的程序集版本和文件版本?