问题标签 [msbuild-target]
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-2012 - 对自定义 MSBuild 文件中执行的项目/解决方案构建和 cmd 文件进行排序
我需要将一系列步骤联系在一起,包括构建解决方案、项目和使用自定义 MSBuild 文件运行 .cmd 文件。
我的第一关如下:
这会导致错误,因为 Exec 元素位于错误的位置。
基本上,我需要构建 solution1.sln、solution2.sln、helper1.csproj 和 helper2.sln(按顺序),然后运行文件 GetFiles.cmd,然后构建 prod.wixproj,然后运行 final.cmd 文件。
我看过 MSDN (此处、此处、此处)、博客,并浏览了各种 stackoverflow 问题(包括this、this、this、this),但没有一个能完全解决我想要做的事情。这是我第一次使用 MSBuild,所以我可能错过了一些东西。将不胜感激任何指针...
visual-studio - 使用外部条件运行 msbuild 任务
是否可以忽略 proj 文件中的目标?任何类型的
或者我们可以在调用 msbuild 时为目标设置条件值吗?
& 在 proj 文件中我们可以有
还有其他可行的建议吗?
整个故事:我们有很多开发人员,其中一些需要这个目标来运行,而另一些则不需要。所以我们需要对目标进行条件调用。
msbuild - MSBUILD 脚本 - 这是循环的正确方法吗?
我想在打包应用程序(.net mvc 3)之前运行自定义任务将 .less 文件编译为 .css。
我没有很多创建 MSBUILD 脚本的经验,所以通过在线阅读我想出了下面的代码。它可以工作,但我觉得应该有一种方法可以让我跳过 ItemGroup 显式声明并指示脚本查找“Skins 文件夹下的任何文件夹”。这有可能吗?
.net - 在导入的 .targets 中获取自定义构建任务中的项目
在为自定义构建任务创建 NuGet 包时,我想在 NuGet 包.targets
的文件夹中使用单独的文件/build/
。
让 NuGet 自动导入文件,如此处.targets
“将 MSBuild 目标和道具文件导入项目”中所述。
现在到我的问题。我Task
获取正在使用构建的项目文件的路径ProjectFileOfTaskNode
。但是当在导入的文件中声明任务时,会返回.targets
文件的路径。.targets
有没有办法获取导入.targets
文件的项目文件的路径?
看起来好像有一种方法可以通过Microsoft.Build.BackEnd.TaskHost
使用反射的一些非公共字段来获取信息。但如果有更开放的方式获得它,我宁愿避免这种情况。
c# - 如何防止不良项目引用?
我们使用带有 TFS 作为源代码控制和 CI 构建的 C# 项目。
我不断发现其他开发人员/Bin
在应该使用我们的/Libs
文件夹(我们保留第 3 方程序集的位置)时错误地从目录中引用程序集
如果有人这样做,作为解决方案构建或 CI 构建(我们也使用 powershell)的一部分,我可以做些什么来检查构建并使其失败?
c# - 如何在构建文件中引用 Azure SDK 工具?
我需要使用该Exec
任务执行以下 Windows Azure SDK 工具:
在我的.build
文件中引用此路径的最佳方法是什么?
直接参考,如下所示,它可能不适用于所有主机(构建服务器和开发机器):
(注意:我不想使用 CSPack 任务)
c# - Running multiple exec tasks in parallel
I am batching multiple exec
tasks in the build process. Each execution takes around one minute to complete, so I would like to run them in parallel to improve overall build performance.
The target that run multiple exec
tasks:
The ItemGroup
definition:
How do I run these exec
tasks in parallel?
msbuild - 通过 MsBuildProj 文件为多个项目转换多个配置文件
我正在尝试根据模式在文件列表上运行多个命令(*.config
给定目录的子目录下的所有形式文件),如下所示:
但是,不执行匹配文件的批处理。
- 从我添加的输出中,我看到该属性
$(PublishFolder)
指向正确的目录,但是,该项目@(ConfigFiles)
为空。
我还尝试手动列出目录名称和配置文件名称,如下所示:
但是,在这种情况下,转换仅应用于一个站点中的一个文件。
知道该怎么做才能使它正常工作吗?
我经历过的类似问题和 MSDN 参考资料:
如何从 msbuild 项目文件本身中使用不同的参数调用相同的 msbuild 目标两次
http://msdn.microsoft.com/en-us/library/ms171454.aspx
编辑:
移动任务下的 ItemGroup 可以在创建文件后读取文件列表,但是,现在只转换列表中的第一个文件:
c# - MSBuild XAML-like DSL 到 Typescript 的编译
更新:似乎 C# 代码生成问题,我怀疑是出于同样的原因,实际上是一个 ReSharper 问题。但是 TypeScript 问题在 VM 内干净的 Visual Studio 上也仍然存在。
我基于我当前的目标文件将自定义 DSL 编译为 TypeScript 文件,部分基于用于 XAML 的内容和此 stackoverflow帖子中显示的 ANTLR 目标文件作为示例。
DSL 可以很好地编译为 typescript,最终组合的 .js 文件还包含 DSL 编译的代码。但智能感知似乎无法识别生成的 ts 文件 (*.g.ts)。
如果转换为 .cs 编译(而不是 .ts),如果项目中引用了同名的部分类,智能感知似乎也只会拾取生成的类。是因为目标文件中的错误还是智能感知无法拾取非部分生成的类?
使用的目标文件
附加信息:
我在测试项目中使用的构建任务目前不是很有趣,它只是让 DSL 文件(必须是包含有效标识符的单行)读取它并使用读取的名称生成一个类。
结果只是在 obj/[Debug|Release] 中生成了一个非常简单的 ts 文件(例如带有 DSL 内容“MySampleClass”)
c# - 跨不同程序集的 ASP.NET 可重用用户控件
我们目前正在开发几个 Web 项目,并希望能够创建一个包含跨 Web 项目共享的用户控件的项目,而不必重新创建它们。据我发现,整个过程很痛苦,因为每个项目都需要访问实际ascx
文件,而不仅仅是对其的引用。
我的处理方法是:
1- 使用 Pre-Build 事件复制 .ascx 文件
从共享程序集到当前项目的工作文件夹。这适用于调试应用程序,但我们需要在文件系统发布期间做同样的事情。
2- 使用 MSBuild 目标在发布过程中复制 .ascx 文件
我在项目的配置文件中添加了以下目标:
(注意SourcePath
和TargetPath
是目录的完整路径。我在这里替换了它们以使其更短)
此目标在文件系统发布后被调用(右键单击项目 -> 发布),但是,文件不会被复制到目标文件夹。
我已经确认目标被调用(通过更改Command=explorer.exe
,弹出一个 Windows 资源管理器窗口)并且还xcopy.exe
使用相同的确切路径运行命令CommandPrompt
并且它确实工作正常。所以我不明白为什么它不能作为目标的一部分。有任何想法吗?