问题标签 [msbuild-propertygroup]

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 投票
2 回答
164 浏览

msbuild - msbuild,覆盖不同文件中的属性值

我正在尝试根据另一个文件中的特定条件修改属性值。例如。我有一个调用目标文件的文件。

我有一个文件,其中包含要决定的项目组和修改的目标

但是当我打印“人”时,我得到空字符串。我检查了是否调用了“SetName”并设置了正确的名称。我在这里想念什么?

0 投票
2 回答
885 浏览

visual-studio-2012 - 对自定义 MSBuild 文件中执行的项目/解决方案构建和 cmd 文件进行排序

我需要将一系列步骤联系在一起,包括构建解决方案、项目和使用自定义 MSBuild 文件运行 .cmd 文件。

我的第一关如下:

这会导致错误,因为 Exec 元素位于错误的位置。

基本上,我需要构建 solution1.sln、solution2.sln、helper1.csproj 和 helper2.sln(按顺序),然​​后运行文件 GetFiles.cmd,然后构建 prod.wixproj,然后运行 ​​final.cmd 文件。

我看过 MSDN (此处此处此处)、博客,并浏览了各种 stackoverflow 问题(包括thisthisthisthis),但没有一个能完全解决我想要做的事情。这是我第一次使用 MSBuild,所以我可能错过了一些东西。将不胜感激任何指针...

0 投票
3 回答
7001 浏览

msbuild - “AutoParameterizationWebConfigConnectionStrings”选项是防止连接字符串标记化的唯一方法吗?

我仍在努力解决 MSBuild 的问题。目前,我正在使用PackageWeb-Nuget-Package中生成的脚本(视频演示)通过 powershell 脚本进行部署。我已经尝试了几天,它似乎有效。但是“突然”生成的 web.config 中的连接字符串被标记了,而不是我看到的有问题的连接字符串

我写“突然”是因为我无法将这种(对我来说是新的)行为与我在前几个小时所做的任何事情联系起来。

总结一下:包中的部署工作正常,并且正在应用正确的配置转换,但我最终得到了这个标记化的连接字符串。

我意识到如果我插入我可以解决这个问题

放入一个 PropertyGroup(我只是将它放入 Nuget-Package 创建的生成的目标文件中)

但是我真的不喜欢这个,必须将这个附加值插入到每个可能需要它的项目中;特别是因为我一开始并不知道我需要这种调整。昨天它起作用了,我没有将这条额外的行插入任何项目或目标文件中。

所以我希望也许有人知道一个额外的开关、技巧或设置,它们也可能对它的工作方式产生额外的影响。

0 投票
1 回答
668 浏览

msbuild - 从特定位置使用 MSBuildExtensionPack(DLL 参考)

我正在尝试使用 MSBuildExtensionPack 并阅读我必须使用以下方法导入项目:

$(MSBuildProjectDirectory)..\MSBuild.ExtensionPack.tasks $(MSBuildProjectDirectory)....\Common\MSBuild.ExtensionPack.tasks

您不必在使用任务时包含上述类型的导入。如果您使用了默认安装路径,只需使用以下导入:

3.5 --- 4.0 ---

我没有在构建服务器上安装扩展包,而是将 DLL 复制到特定位置并尝试通过以下代码访问它:

使用 TeamCity 触发构建后,出现以下错误:

错误 MSB4019:未找到导入的项目“C:\Apps\Teamcity\buildAgent 1\work\vb82348r312dsd33\thirdparty\tools\MsBuildExtensions”。确认声明中的路径正确,并且该文件存在于磁盘上。

如果我查看构建机器,我可以找到该文件夹​​和其中的所有文件。不知道为什么我会收到这个错误。

请提供您的建议

0 投票
1 回答
2942 浏览

msbuild - MSBuild 多输出路径

我看到了这个SO question 并且有类似的要求。这就是我在 .targets 文件中的内容 -

如何输出到多个文件夹?例如- $(TeamBuildOutDir)\Assemblies2

TIA

谢谢尼克,复制/粘贴搞砸了。这就是我尝试过的 -

我也试过-

和 -

如果目录不存在导致问题但仍然没有运气。

7/28 更新。尝试过但仍然无法正常工作(没有错误,但文件不存在于输出目录中。它们存在于 Assemblies 文件夹中,所以我知道目标文件正在被触发。) -

0 投票
1 回答
93 浏览

msbuild - 通过 MSBuild 注释提示构建 Vs2012 Sln。带有 nuget 参考

我们计划使用 msbuild 通过 cmd 构建解决方案。项目解决方案 ( .sln) 具有 nuget 参考。我们在构建项目 sln 时遇到错误。像nuget错误。

正在恢复 NuGet 包...要防止 NuGet 在构建期间下载包,请打开 Visual Studio 选项对话框,单击包管理器节点并取消选中“允许 NuGet 下载丢失的包”。C:\Program Files (x86).nuget\nuget.targets(89,9):错误:找不到包 X 的版本 '3.0.0.0'。

如何在构建解决方案时恢复 nugets?

0 投票
1 回答
372 浏览

msbuild - MSBuild 与目标。我怎样才能使这项工作?

我在 msbuild 文件中有以下代码。

这用于所有项目。在每个项目中,我都有另一个 msbuild 项目,但我真的不能让它正常工作。这是我的代码

我用这个参数调用它: /t:compile /p:verbose=true /t:target=Start

但我得到错误:

我理解它调用第一个但没有目标 Start 但我怎样才能让它工作的错误?我不想在顶部的 msbuild 文件中添加任何内容。

0 投票
1 回答
736 浏览

msbuild - MSBuild.ExtensionPack.Communication.Ftp 的 FTP 凭据

在我的 AfterBuild 脚本中,我使用以下方法将文件上传到部署服务器:

如何从文本文件或外部源加载这些凭据?有哪些替代方案?我不想将 ftp 凭据硬编码到我的 cproj 文件中。

我使用 GranadaCoders 方法来回答我自己的问题:

0 投票
2 回答
2873 浏览

c# - 将 Postbuild 事件添加到项目

当我生成一个 C# 项目(csproj文件)然后编译它时,msbuild不知何故无法识别 pre-和 post-build 事件中的变量$(ConfigurationName)$(ProjectDir)(和其他)。

当我手动将生成.csproj文件中的构建前和构建后事件配置进一步向下移动时,msbuild 会正确识别这些变量。

将 buildevent 添加到项目是我在保存项目之前做的最后一件事。

这就是我添加它的方式:

通过 msbuild 运行生成的项目时出现的错误是:

然后,当我手动编辑.csproj文件(使用记事本或其他文本编辑器)时,剪切 pre-和 postbuild 事件,并将其粘贴到<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />元素下方,然后 msbuild 会很好地构建生成的.csproj文件。

将构建事件添加到文件中以使其在结果中的元素.csproj之后结束的最佳方法是什么?ImportXML

显然,我目前通过从Microsoft.Build.Evaluation.ProjectXml属性的AddPropertyGroup[ProjectPropertyGroupElement][1]请求它的使用方式不是。

示例项目:

重现步骤

  • 创建一个新项目
  • 手动添加应该与 app.debug 文件不同的 app.config.debug 文件
  • 添加构建后事件:copy "$(ProjectDir)app.config.$(ConfigurationName)" "$(TargetDir)\$(ProjectName).exe.config
  • 看到项目构建和正确的配置文件被应用
  • 使用记事本删除构建前和构建后的事件(以免留下任何痕迹)
  • 运行示例项目
  • 重新加载并构建您创建的项目。
  • 输出窗口现在会说The system cannot find the file specified.
0 投票
1 回答
2987 浏览

.net - 对 csproj 的更改未生效

为了尝试根据我的配置更新我的引用,我通过添加一个属性并更改所有引用以使用它来调整我的 .csproj 文件,如下所示:

出现问题并阻止更改传播。我对 .csproj 文件所做的任何操作都不会更改引用的路径 - 无论我做什么,右键单击引用并在属性中查看它的路径会显示它在我开始编辑文件之前显示的相同路径。

  • 我试过卸载和重新加载项目
  • 我尝试将配置从 Debug 更改为 Release
  • 我已经打开并关闭了解决方案
  • 当解决方案关闭时,我删除了 .suo 文件。
  • 我在解决方案资源管理器上单击了重新加载。

.csproj 中的所有引用都使用$(ReferencePath)设置,并且我的 ReferencePaths 都不使用原始路径。

我错过了什么?我使用该物业的方式有问题吗?