问题标签 [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 投票
3 回答
622 浏览

c# - 使用 Microsoft.Build 以编程方式构建项目失败

我将以下三个包安装到我的控制台应用程序中:

我尝试使用以下方法来构建项目:

但是,在我运行代码后,我得到了下图中描述的错误:

在此处输入图像描述

为什么会发生这种情况,我该如何解决?

0 投票
0 回答
118 浏览

c# - 与 Microsoft.Build.Execution.BuildManager 并行构建解决方案

我正在尝试跨不同线程并行构建多个解决方案,但它不起作用。

代码如下所示:

为每个解决方案按顺序执行此操作时,它可以完美运行。当它跨多个线程同时执行时,它会失败并出现以下错误:

最初使用的这段代码BuildManager.DefaultBuildManager似乎是最常见的用法,但它是一个单例,这失败了,因为一个实例BuildManager不能一次只构建一个东西。创建一个新的实例BuildManager可以解决该问题,但由于上述错误而失败。我已经尝试将 hostName 参数设置为每个线程的唯一值或不提供它,但这没有区别(我也找不到关于它的含义的文档)。

这是否只是有一些静态共享资源可以防止这种情况发生,或者我做错了什么?如果有任何文档可能对此有所帮助,我将不胜感激指向正确方向的指针(我对此所做的每一次搜索都会得出在解决方案中并行化项目构建的结果)。

0 投票
1 回答
1168 浏览

.net - 在 Powershell 中获取 .NET Framework 目录的路径

我正在尝试使用此方法获取 .NET Framework 目录(例如C:\Windows\Microsoft.NET\v4.0.30319

但是,它什么也没返回。没有错误,只是空白。

我知道还有其他方法可以获取 .NET 目录,但我想知道为什么这种方法不起作用?

0 投票
1 回答
54 浏览

visual-studio - Visual Studio 不接受 Nugget 包的 UWP 版本?

这让我发疯!

我正在尝试安装 Microsoft.Build。使用 Nugget Manager 我可以成功安装 Microsoft.Build.Framework 但不能安装 Microsoft.Build。我已升级到最新版本 1903(内部版本 18362),但仍然出现错误:

严重性代码 描述 项目文件行抑制状态错误 NU1202 包 Microsoft.Build 16.5.0 与 uap10.0.18362 (UAP,Version=v10.0.18362) / win10-x64 不兼容。软件包 Microsoft.Build 16.5.0 支持: - net472 (.NETFramework,Version=v4.7.2) - netcoreapp2.1 (.NETCoreApp,Version=v2.1)

但是两者的框架要求是一样的吗?任何人都看过这个或有一些想法是什么问题?

谢谢

0 投票
1 回答
105 浏览

msbuild - Microsoft.Build 无法加载 EvaluationContext

通过命令行构建代码时,出现错误:

System.TypeLoadException:无法从程序集“Microsoft.Build,Version=15.1.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”加载类型“Microsoft.Build.Evaluation.Context.EvaluationContext”

我在 Windows 环境中使用 Visual Studio 2017。

我努力了

  1. 重新启动 Visual Studio 的所有实例
  2. 重新启动机器。
  3. 尝试通过 Visual Studio 安装程序修复 Visual Studio。
  4. 尝试使用 gacutil 卸载并重新安装 Microsoft.Build.Framework.dll。我仍然遇到同样的错误。

如果我能解决这个问题,那将非常有帮助。提前致谢。

0 投票
1 回答
551 浏览

visual-studio - 为什么使用一个版本的 MSBuild 构建从另一个版本的 MSBuild 查找程序集会引发错误?

我的代码库包含大约 30 个解决方案。这些解决方案中的大多数项目都是 (C#) .NET Framework,但最近我一直在添加一些 .NET Standard 2.0 和 .NET Core 3.1 项目。所有解决方案中的所有项目都可以在 Visual Studio 2019 中完美构建 - 只需单击“构建”即可构建。

所有解决方案中的所有项目也在 Azure DevOps 中构建(......尽管配置构建管道以达到这一点很痛苦)。

为方便起见,我编写了一个简单的工具,该工具将使用 Microsoft.Build NuGet 包循环浏览代码库中的所有解决方案并构建它们。这将允许我快速检查我是否在一个解决方案中进行了任何更改,这些更改在我没有注意到的情况下破坏了另一个解决方案(例如,在共享项目中)。这就是麻烦开始的地方。

.NET Framework 项目都构建良好。但是,在构建任何 .NET Core 项目时,都会出现构建错误。这些因项目而异,但都包含一些类似于以下的错误:

在某些情况下,它可能是 Microsoft.Build.Framework 而不是 Microsoft Build,或者它可能是版本 15.0.0.0 而不是 14.0.0.0,并且除了无法找到它的程序集之外,总会出现其他错误寻找; 但这似乎是问题的核心。

Microsoft.Build Nuget 包的版本为 16.7.0。唯一安装的 MSBuild 版本是与 Visual Studio 2019 版本 16.7.6 一起安装的版本,我认为是 16.7.0。没有一个受影响的项目对旧版本的 MSBuild 有任何明显的依赖关系,例如在项目中的 ToolsVersion="16.0",无论如何,如果项目有问题,它就不会在 Visual Studio 中构建 - 更不用说一些其中只有最近几天是全新的。

那么,当我使用当前版本的 Microsoft.Build 程序集进行构建时,为什么有些东西(?)决定寻找旧版本的 Microsoft.Build 程序集(并且失败),并且项目都是正确的,并且它们都构建在 Visual Studio 中?或者 - 我怎样才能自己找到这个?

0 投票
0 回答
105 浏览

.net - 找不到类型 [Microsoft.Build.Construction.SolutionFile]

我突然遇到了一个之前运行没有问题的脚本的问题

似乎可以正常工作,Add-Type但下一行不断抛出错误

该脚本基于几个示例

它在过去有效。我仍然指向相同的旧 Microsoft.Build.dll 程序集。谁能向我解释发生了什么变化?

0 投票
1 回答
1046 浏览

.net - project.assets.json 没有“net472”的目标。确保还原已运行并且您已包含“net472”VS2019

当我尝试构建应用程序时出现此错误。我想我需要以某种方式进行 .net 恢复,但我不知道它是否会起作用。我想通过代码来实现。.csproj:

0 投票
0 回答
37 浏览

c# - 'Microsoft.Build.BackEnd.ItemGroupLoggingHelper' 引发异常

未处理的异常异常:System.TypeInitializationException:“Microsoft.Build.BackEnd.ItemGroupLoggingHelper”的类型初始化程序引发了异常。---> System.MissingFieldException:找不到字段:'Microsoft.Build.Framework.BuildEventArgs.ResourceStringFormatter'。在 Microsoft.Build.BackEnd.ItemGroupLoggingHelper..cctor() --- 内部异常堆栈跟踪结束 --- 在 Microsoft.Build 的 Microsoft.Build.BackEnd.Logging.LoggingService..ctor(LoggerMode loggerMode, Int32 nodeId)。 Microsoft.Build.Evaluation.ProjectCollection..ctor(IDictionary) 上的 Evaluation.ProjectCollection.CreateLoggingService(Int32 maxCPUCount, Boolean onlyLogCriticalEvents)2 globalProperties, IEnumerable1 个记录器,IEnumerable`1 remoteLoggers,ToolsetDefinitionLocations toolsetDefinitionLocations,Int32 maxNodeCount,布尔 onlyLogCriticalEvents,布尔 loadProjectsReadOnly) 在 ICSharpCode.SharpDevelop.Workbench.WorkbenchStartup.PreloadThread() 在 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 在 System.Threading.ExecutionContext .RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback , 对象状态) 在 System.Threading.ThreadHelper.ThreadStart()

谷歌搜索了这个,但没有运气。任何帮助,将不胜感激。