问题标签 [msbuild-4.0]

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

tfs - 一个项目的 MSBuild 或 TFSBuild 条件?

我在 Visual Studio 2010 解决方案中有一个长期构建(设置)项目。它设置为不在解决方案配置中构建。这样,当开发人员在本地构建时,他们就不必等待安装程序在 Visual Studio 中编译。

但是,我正在寻找一种方法来更改 tfsbuild 或 msbuild 文件中的配置,因此每当在服务器上构建东西时,总是会构建安装项目,而不管开发人员签入他们的解决方案时的设置可能是什么。TFS 2008 是源代码控制系统,但只是一个普通的 Server 2008(完全安装了 devenv)是构建服务器。

所有线索表示赞赏。

谢谢。

0 投票
1 回答
604 浏览

visual-studio-2010 - _bin_deployableassemblies 来自未安装 Visual Studio 2010 SP1 的构建服务器

我正在尝试构建一个依赖于 VS2010 sp1 中引入的 _bin_deployableassemblies 文件夹的 mvc 3 应用程序。

我使用 TeamCity 作为我的构建服务器。

当我从安装了 VS2010sp1 的开发机器上运行 TeamCity 中的构建时,一切都很好。

当我从没有安装 VS2010sp1 但安装了 TFS2010sp1(以及 mvc3 )的构建服务器运行构建时,_bin_deployableassemblies 文件不会被处理。

如何获取构建服务器上的位以使 _bin_deployableassemblies 文件夹工作?

0 投票
1 回答
5879 浏览

.net - 项目中不存在目标“_WPPCopyWebApplication”

我正在创建一个构建脚本来自动将我们的 Web 项目发布到测试机器上。

我有一个成功执行此操作的 msbuild 脚本,但是当它运行时,它会为解决方案中的每个项目生成一个错误,指出“项目中不存在目标“_WPPCopyWebApplication”。

这是正确的,因为在我的每个项目文件中,我都没有导入包含此函数的相关 .targets 文件。

如果我确实更改了每个项目文件以导入 .targets 文件,那么我会收到每个项目的警告,而不是错误,说明

MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets”无法再次导入。

它已在“MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets (354,3)”中导入。这很可能是构建创作错误。随后的导入将被忽略。

目前,我在构建脚本的顶部导入了相关的 .targets 文件:

有没有办法防止错误指出项目文件中不存在“_WPPCopyWebApplication”而不生成警告,指出在我将其添加到每个项目文件后存在重复导入?

如果在我的构建脚本顶部导入目标文件,为什么项目需要导入目标文件?

编辑:

我目前正在像这样使用 _WPPCopyWebApplication:

我从这里这里得到的:

0 投票
1 回答
234 浏览

msbuild - 确保在构建结束时运行 msbuild 任务

我正在考虑改进我们的一个构建系统,但它有点杂乱无章。我想添加一个仅在发布版本结束时运行的任务,并且在我们拥有的所有其他任务(例如 FxCop/StyleCop/签名过程)之后运行。

有没有一种简单的方法可以在构建的绝对结束时指定您想要的任务?我目前已经让任务在构建之后运行(使用 AfterBuild Target),但这对于任务正在做什么没有意义。

干杯,杰米

0 投票
1 回答
401 浏览

c# - 使用 MSBuild 为每个客户的应用程序副本添加序列号和 RSA 私钥

我需要在我的应用程序中嵌入私有 RSA 密钥。我的 RSA 密钥是根据产品序列号和选项生成的。示例 serial#1_opt1.private(此文件包含我想嵌入代码中的密钥) serial#1_opt1.public(如果用户(例如硬件经销商)需要访问受限功能,我将向他发送此文件以解锁特定选项) 每个客户需要/可能需要一组不同的密钥,具体取决于他被授权使用的选项。

我希望每个人都拥有我的应用程序中的一组标准功能(对硬件的基本控制)我的愿景是产品的标准功能集没有序列号,也没有嵌入式密钥。因此,所有受限制的功能都不会起作用,但所有标准的东西都会起作用。该程序将有一个版本号,但在 about/help 部分没有序列号

如果我需要启用受限功能[s],我使用 MSbuild 编译程序,并使用我在命令行上为该客户生成的序列号。MSBuild 将获取序列号并将其嵌入到我可以在我的代码中访问它的位置我希望它最终会出现在 properties.settings 文件中???并将其放在名为序列号的 var 中,默认情况下为空白。现在 MSBuild 已将序列号放在正确的位置,我现在希望它使用私钥 [s] 查找文件 serial#1_opt1.private 并将其/它们放在某个地方?我可以在哪里访问它们......但希望不是很容易找到它们的地方。当我的应用程序运行时,我使用私钥来加密“某物”,如果用户拥有带有公钥的文件[s],他可以解密该“某物”,这将允许他使用该特定选项。如果他拥有所有选项的所有公钥文件,那么他可以对硬件做任何我能做的事情......因为把它搞砸了,它必须返回工厂重新校准。有人可以告诉我这是否是正确的方法吗?如果不是,那么正确的方法是什么?如果是这样,我怎样才能让 MSBuild 完成这些技巧?

0 投票
1 回答
495 浏览

path - 使用 MSBuild 4.0,是否可以“简化”包含路径的属性?

假设我有一个包含

我想减少/简化它


此外,我还希望能够从当前目录获取相对路径或指定。

使用相同的起始属性并将当前工作目录设置为

我希望它减少到

0 投票
1 回答
945 浏览

visual-studio-2010 - MSBuild,包含基于一组路径的文件

我正在尝试创建一个构建脚本,它允许我指定特定网站中包含的“模块项目”的路径列表。

因此,我有这样的布局:

所以,基本上我希望能够指定一个包含 ModuleProject1 和 2 的 ItemGroup,并将相关文件从中复制到 MainProject。

然后,在我的主构建脚本中,我想找出我的附属程序集的路径,以及驻留在项目的 obj\Release*.dll 文件夹中的所有 dll。

我已经有项目文件(.csproj)的项目组,所以基本上我只想添加更多的文件引用。但我不知道我会怎么做。这就是我今天所拥有的:

根据我所拥有的事实,我将如何着手使最后一行工作?

这样做时:

它输出这个:

如果有人有一些关于 MSBuild 基础知识的链接以及很好的示例,我将不胜感激。我总是以一些非常神秘的例子结束 msdn,这些例子并没有真正解释太多。

编辑:我修改了我的计划并且几乎让它工作,但是包含并没有像我期望的那样真正工作。不包括任何内容,但有一些文件计算路径。

如果我手动添加:

它实际上包含在“卫星”项目组中。

0 投票
1 回答
203 浏览

msbuild - 访问 MSBuild 变量中以分号分隔的项目

我有一个正在使用的变量,称为$(TargetConnectionString)

它设置为

SomeValue=Things;Data Source=MySQLServer;Integrated Security=True;Pooling=False

有没有一种很酷的 MSBuild 方法来获取对这个列表中 MySQLServer 部分的引用?

(我可以使用批处理文件来解析它,但是我必须找到一种方法来读回它。所以我希望有一种方法可以说$(TargetConnectionString."Data Source")(或类似的东西)

那么,我怎样才能得到 MySQLServer 文本。

0 投票
1 回答
988 浏览

msbuild - MSBuild 4.0 属性函数无法访问其中的属性

我无法从内部访问属性是 MSBuild 4.0 属性函数的限制吗?

这是一个可以正常工作的示例:

这是另一个不起作用的例子。(我0用另一个属性替换)

这输出

位置 = 0
错误 MSB4184:无法评估表达式“”Data Source=MySQLServer;Integrated Security=True;Pooling=False”.Substring(0 + 12)”。输入字符串的格式不正确。

我获取了输出并插入了一个控制台应用程序,它工作得很好。我尝试了几种变体,当我将属性放在属性函数中时,它们总是失败。(我什至尝试在我的属性函数中访问相同的属性两次,但也失败了。)

属性函数不支持访问属性吗?

0 投票
1 回答
596 浏览

msbuild - 如何在批处理任务中使用共享 ItemGroup 元素

我正在尝试使用 MSbuild 为两个不同平台自动创建 Firefox 插件:我有共享文件集,这些文件集对于 Mac 和 Windows 是相同的,并且具有特定于平台的文件。

我想按平台批量制作 XPI(这只是一个重命名的 Zip 文件)的任务,但我找不到添加平台不可知(共享)文件作为 Zip 任务输入的正确方法。目前,我的解决方案是使用平台 windows 和平台 mac 复制共享文件项,然后通过平台参数批处理 Zip 任务。我有一种感觉,我的解决方案不是最优的。也许社区可以提出更好的解决方案。以下是我创建的带有注释的简化解决方案: