问题标签 [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.
c# - 从解决方案中获取所有配置和平台(在 C# 代码中)
我正在开发一些编译工具。我正在使用 Microsoft.Build 库通过选定的配置编译解决方案:
如何从解决方案文件中获取配置和平台的所有选项,而不仅仅是编写Debug
和Mixed
平台?
谢谢
c# - Microsoft.Build.BuildEngine 忽略 BeforeTargets
使用库构建项目文件Microsoft.Build.BuildEngine
似乎忽略了该BeforeTargets
属性。
我的项目文件具有以下目标:
当我使用以下代码编译它时(F#,但在 C# 中也是如此):
目标"MyTestTarget"
未运行。请注意,当我改用MSBuild.exe
4.0 时,"MyTestTarget"
是正确运行的。
我知道在 MSBuild 4.0 中添加了 BeforeTargets,如果与旧版本的Microsoft.Build
. 但是我没有发现任何关于 MSBuild 4 忽略 BeforeTargets 的信息。
c# - 强制 BuildManager 使用另一个版本的 MSBuild
以下代码尝试使用以下代码以编程方式构建解决方案BuildManager
:
当我运行此代码时,它不会构建任何东西。我可以看到csc.exe
除了一个特定版本之外,还使用了以下编译器winmdexp.exe
:
但是当我使用 VS IDE 成功构建解决方案时,会出现以下信息:
为什么我的代码中会发生这种情况以及如何更改它?
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
之后结束的最佳方法是什么?Import
XML
显然,我目前通过从Microsoft.Build.Evaluation.Project的Xml属性的AddPropertyGroup[ProjectPropertyGroupElement][1]
请求它的使用方式不是。
示例项目:
重现步骤
- 创建一个新项目
- 手动添加应该与 app.debug 文件不同的 app.config.debug 文件
- 添加构建后事件:
copy "$(ProjectDir)app.config.$(ConfigurationName)" "$(TargetDir)\$(ProjectName).exe.config
- 看到项目构建和正确的配置文件被应用
- 使用记事本删除构建前和构建后的事件(以免留下任何痕迹)
- 运行示例项目
- 重新加载并构建您创建的项目。
- 输出窗口现在会说
The system cannot find the file specified.
c# - 使用 Microsoft.Build 构建 .sln 文件
我正在使用 VS2012,我想使用 c# 以编程方式构建一个 .sln 文件。我知道我需要使用Microsoft.Build api 来执行此操作。我已经建立了解决方案
这将执行构建命令,但我收到一条错误消息:
在 .vcxproj 中,给出错误的行是:
我尝试将环境变量 VCTargetsPath 设置为
但我得到一个错误:
经常构建框架。
有人对我如何解决这个问题有任何建议吗?编辑:我认为这似乎是 Visual Studio 中的一个错误,但我无法重现评论中提到的问题。如果运行开发人员命令提示符,我可以使用 MSBuild 构建解决方案。
c# - 在 C# 可执行文件中构建 .sln
我正在尝试在 C# 中构建一个 .sln。我有以下代码。
它不会出现错误,它会显示Completed Solution build...
,但我无法在\bin\Release
. 我是否忘记了什么或如何检查它?
visual-studio-2008 - 无法加载文件或程序集“Microsoft.Build”
当我尝试构建我的解决方案时,我遇到了错误。我尝试在 GAC 中安装它,但仍然出现此错误
错误 2 无法加载文件或程序集“Microsoft.Build”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。
其他信息:VS2008、.Net 3.5、Win 7 64 位
c# - 使用 msbuild api 构建解决方案
几周以来,我一直在尝试使用 MSbuild API 构建解决方案,但没有成功。我能够通过在我的程序中运行一个执行 MSBUild.exe 的批处理文件来构建解决方案,但我注意到这不是一个很好的方法。我用谷歌搜索了一下并实现了以下代码:
当我运行我的程序时,会创建一个包含调试文件夹的 bin 文件夹,但什么也没发生。使用批处理文件大约需要 2-5 分钟来构建项目。有什么我想念的吗?
msbuild - 使用 Microsoft.Build.Evaluation.Project 时设置配置?
我可以使用以下内容构建项目
但我需要能够将构建配置设置为发布。我查看了文档,但要么我错过了它,要么没有简单的方法来设置它。
c# - EventSourceException:操作系统没有可用的可用缓冲区
完整的例外文本是:
EventSourceException:操作系统没有可用的可用缓冲区(例如,事件速率太快)。
由于递归,我调用此方法大约一百万次。它不会停止,我只是在 VS2013 的输出调试窗口中得到异常文本。但它超级慢。
有谁知道这个异常意味着什么以及如何解决它。我假设速度慢与此异常有关。
IsWebservice()
并且GetMethodName()
是纯字符串方法。
我在 .NET 4.5.2 下的 VS2013 项目中运行 Roslyn,它与此有关吗?我刚刚安装了这个 nuget 包
PM> Install-Package Microsoft.CodeAnalysis
然后我不得不复制并在我的项目中包含以下文件。
任何如何加快代码速度或找到异常根本原因的想法都会有所帮助。//谢谢 :-)