问题标签 [microsoft.build]

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 投票
0 回答
66 浏览

c# - 从解决方案中获取所有配置和平台(在 C# 代码中)

我正在开发一些编译工具。我正在使用 Microsoft.Build 库通过选定的配置编译解决方案:

如何从解决方案文件中获取配置和平台的所有选项,而不仅仅是编写DebugMixed平台?

谢谢

0 投票
1 回答
265 浏览

c# - Microsoft.Build.BuildEngine 忽略 BeforeTargets

使用库构建项目文件Microsoft.Build.BuildEngine似乎忽略了该BeforeTargets属性。

我的项目文件具有以下目标:

当我使用以下代码编译它时(F#,但在 C# 中也是如此):

目标"MyTestTarget"未运行。请注意,当我改用MSBuild.exe4.0 时,"MyTestTarget"是正确运行的。

我知道在 MSBuild 4.0 中添加了 BeforeTargets,如果与旧版本的Microsoft.Build. 但是我没有发现任何关于 MSBuild 4 忽略 BeforeTargets 的信息。

0 投票
1 回答
5919 浏览

c# - 强制 BuildManager 使用另一个版本的 MSBuild

以下代码尝试使用以下代码以编程方式构建解决方案BuildManager

当我运行此代码时,它不会构建任何东西。我可以看到csc.exe除了一个特定版本之外,还使用了以下编译器winmdexp.exe

但是当我使用 VS IDE 成功构建解决方案时,会出现以下信息:

为什么我的代码中会发生这种情况以及如何更改它?

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 投票
0 回答
1095 浏览

c# - 使用 Microsoft.Build 构建 .sln 文件

我正在使用 VS2012,我想使用 c# 以编程方式构建一个 .sln 文件。我知道我需要使用Microsoft.Build api 来执行此操作。我已经建立了解决方案

这将执行构建命令,但我收到一条错误消息:

在 .vcxproj 中,给出错误的行是:

我尝试将环境变量 VCTargetsPath 设置为

但我得到一个错误:

经常构建框架。

有人对我如何解决这个问题有任何建议吗?编辑:我认为这似乎是 Visual Studio 中的一个错误,但我无法重现评论中提到的问题。如果运行开发人员命令提示符,我可以使用 MSBuild 构建解决方案。

0 投票
1 回答
3540 浏览

c# - 在 C# 可执行文件中构建 .sln

我正在尝试在 C# 中构建一个 .sln。我有以下代码。

它不会出现错误,它会显示Completed Solution build...,但我无法在\bin\Release. 我是否忘记了什么或如何检查它?

0 投票
1 回答
633 浏览

visual-studio-2008 - 无法加载文件或程序集“Microsoft.Build”

当我尝试构建我的解决方案时,我遇到了错误。我尝试在 GAC 中安装它,但仍然出现此错误

错误 2 无法加载文件或程序集“Microsoft.Build”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

其他信息:VS2008、.Net 3.5、Win 7 64 位

0 投票
0 回答
456 浏览

c# - 使用 msbuild api 构建解决方案

几周以来,我一直在尝试使用 MSbuild API 构建解决方案,但没有成功。我能够通过在我的程序中运行一个执行 MSBUild.exe 的批处理文件来构建解决方案,但我注意到这不是一个很好的方法。我用谷歌搜索了一下并实现了以下代码:

当我运行我的程序时,会创建一个包含调试文件夹的 bin 文件夹,但什么也没发生。使用批处理文件大约需要 2-5 分钟来构建项目。有什么我想念的吗?

0 投票
1 回答
929 浏览

msbuild - 使用 Microsoft.Build.Evaluation.Project 时设置配置?

我可以使用以下内容构建项目

但我需要能够将构建配置设置为发布。我查看了文档,但要么我错过了它,要么没有简单的方法来设置它。

0 投票
2 回答
2155 浏览

c# - EventSourceException:操作系统没有可用的可用缓冲区

完整的例外文本是:

EventSourceException:操作系统没有可用的可用缓冲区(例如,事件速率太快)。

由于递归,我调用此方法大约一百万次。它不会停止,我只是在 VS2013 的输出调试窗口中得到异常文本。但它超级慢。

有谁知道这个异常意味着什么以及如何解决它。我假设速度慢与此异常有关。

IsWebservice()并且GetMethodName()是纯字符串方法。

我在 .NET 4.5.2 下的 VS2013 项目中运行 Roslyn,它与此有关吗?我刚刚安装了这个 nuget 包

PM> Install-Package Microsoft.CodeAnalysis

然后我不得不复制并在我的项目中包含以下文件。

任何如何加快代码速度或找到异常根本原因的想法都会有所帮助。//谢谢 :-)