问题标签 [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 回答
1043 浏览

msbuild - 如何在 MSbuild 中添加预构建活动以验证签名过程?

我们正在使用 Msbuild 构建我们的 Wix 项目。由于各种问题,wix 中指定的程序集很少被延迟签名。当它安装在 GAC 中时,它失败了。

有什么方法可以将强名称签名验证作为 wix 中的预构建活动进行验证?

sn -vf "assembly"用来做强名称验证。

我只想对将打包在 wix msi 中的 dll 进行强名称验证(换句话说,在 wxs 文件中指定的程序集)

怎么做呢?

0 投票
2 回答
439 浏览

msbuild - 尝试使用 .Net Framework 3.5 / v90 工具集构建时,MSBuild 2010 找不到已安装的 VS2008

我在通过自动构建在 VS2010 中构建针对 .Net Framework v3.5 的 C++ 项目时遇到问题(请参阅我的其他问题

虽然我很确定提供给问题的答案是正确的,但我遇到了另一个问题,它仍然阻止构建工作。

到目前为止,我已采取以下步骤:

  1. 手动更改了 .vcxproj 文件,以便它们针对 .net 框架 3.5
  2. 将每个项目的“平台工具集”更改为 v90
  3. 在构建机器上安装了 VS2008 SP1
  4. 在构建机器上打开 VS2010 命令行,设置 TargetFrameworkVersion=v3.5 并从命令行启动 devenv.exe。
  5. 将 /p:TargetFrameworkVersion=v3.5 传递给我的特定构建定义的工作流中的 MSBuild

(从这里采取的步骤)

当我为这些项目启动构建时,构建将在第一个项目上失败,并显示以下错误消息:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets (293):指定平台工具集 (v90) 需要 Visual Studio 2008。请确保 Visual Studio 2008 安装在机器。

我真的对这个问题不知所措。我不知道为什么 MSBuild 会认为 VS2008 显然没有安装。我尝试将 MSBuild 平台从 Auto 更改为 X86,但这并没有什么不同。

我的构建机器正在运行 Windows Server 2008 R2 Enterprise(64 位)

一如既往,感谢您提供的任何帮助

0 投票
2 回答
2418 浏览

msbuild - 如何使用 MSBuild 为每个项目的每个构建配置提供不同的 OutputPath?

必须使用一种或多种配置(调试/发布/...)构建多个项目。

需要将构建的输出复制到一个文件夹 (BuildOutputPath)。有一个默认的 BuildOutputFolder,但对于某些项目,您可以指示输出需要放在一个额外的子文件夹中。

例如:

配置有:--debug--release

这些项目是:

  • 项目 1(构建输出文件夹)
  • 项目 2(构建输出文件夹)
  • Project3 (BuildOutputFolder\Child)

最终结果应如下所示:

我得到了这么远的atm,但无法弄清楚如何覆盖每个项目的OutputPath。

您将如何在 MSBuild 项目文件中完成此操作?

0 投票
3 回答
12003 浏览

msbuild-4.0 - 如何覆盖配置属性?

我正在尝试在 .Net v4.0 上进行发布和调试构建,其中我有一个 MSBuild 项目文件而不是解决方案文件。我想使用相同的构建项目文件,但只是覆盖在“调试”和“发布”之间切换的配置属性。

当我执行如下

我收到以下错误

我可以看到错误发生在_CheckForInvalidConfigurationAndPlatform.

如果我传递一个 OutputPath 属性,它将起作用

这是一个已知的错误 ?在我需要覆盖 Configuration 属性的地方,我将被迫覆盖 OutputPath 属性,即使我不希望这样做。

提前致谢。

0 投票
2 回答
268 浏览

xml - 如果元数据相同,如何组合成单个属性?

我有这样的 Msbuild XML 文件。

实际上我想像这样对 XCopy Itemgroup 进行分组

如何使用 Powershell 或 Msbuild 或通过其他一些机制来实现它

0 投票
1 回答
2048 浏览

powershell - 如何使用 Msbuild 获取 LDAP 显示名称和电子邮件 ID?

我有社区任务来发送邮件。但在主题本身,如果我添加 LDAP 用户的显示名称,我会知道谁在构建。

遵循 Powershell 中的代码会给我邮件 ID 和显示名称

有什么方法可以在 Msbuild 中获取邮件 ID 和显示名称,还是通过内联任务调用 powershell 命令更好?

0 投票
3 回答
10676 浏览

msbuild - 如何在 MSBuild 4 中将字符串拆分为多个字符?

我有以下字符串MasterVersion

我需要将其拆分为 . 和 - 所以它变成了一个string[]名为 的数组SplitVersion,即:

我已经尝试了所有我能想到的方法,包括以下十几种变体,但没有任何乐趣:

我错过/搞砸了什么晦涩难懂的 MSBuild 语法?

0 投票
1 回答
155 浏览

msdeploy - Msbuild 打包问题

目前我正在开发一个 mvc3 项目,并使用 msbuild 命令行工具进行打包。

在我的机器上,该命令成功执行并创建了一个可部署的包。在部署 bat 文件中,它具有以下 Web 部署配置。

但是,当我尝试在我的构建服务器机器(jenkings 服务器)中运行相同的 msbuild 命令时,它会使用以下 Web 部署配置创建一个不同的 bat 文件。

在两台机器上,我都使用相同版本的 msbuild。我还在这些机器上安装了 msdeply1 和 msdeploy2。这可能是什么原因?我正在使用 Microsoft (R) Build Engine Version 4.0.30319.1 版本的 msbuild。

谢谢

0 投票
2 回答
5338 浏览

msbuild - 错误 MSB4064:“复制”任务不支持“OverwriteReadOnlyFiles”参数

我正在使用 Msbuild 4.0。当我使用 Msbuild 3.5 OverwriteReadonlyfiles 工作时没有任何问题。

但是今天当我尝试使用复制任务时,我遇到了这个问题。

错误 MSB4064:

“复制”请求不支持“OverwriteReadOnlyFiles”参数。验证该参数是否存在于任务中,并且它是一个可设置的公共实例属性。

这是我的目标,它有复制任务

以下是我在属性文件中使用的项目组

我有多个属性文件,我已经验证在所有地方都放置了 Toolsversion=4.0。有没有人遇到过这种情况?有什么办法可以解决这个问题?

0 投票
1 回答
742 浏览

msbuild - MSbuild 4.0 无法编译 .Net 3.5 项目

我正在使用 Msbuild 4.0。

在我们的项目中,很少有解决方案拥有 .net 3.5 项目。

当我通过 Visual Studio 编译它时,它可以工作。如果我使用 Msbuild 构建相同的内容,它会失败。

以下是编译问题:

错误:编译失败。无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。HRESULT 异常:0x80131515

即使我尝试改变

工具版本到 3.5

通过项目的附加属性。[我正在使用 Msbuild 任务来构建我的解决方案]

我们的 Msbuild 任务如下所示。

我们正在通过属性文件传递解决方案,如下所示