我正在使用Visual Studio 2017(发布),并尝试使用Microsoft.Build版本15(来自NuGet)以编程方式构建新的ASP.Net MVC Core项目。
我收到此错误消息:
错误C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017年\社区\的MSBuild \微软\ VisualStudio的\ V15.0 \打字稿\ Microsoft.TypeScript.targets(164,5): " TypeScript.Tasks.FindConfigFiles"无法加载任务 程序集C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017年\社区\的MSBuild \微软\ VisualStudio的\ V15.0 \打字稿\ TypeScript.tasks.dll。 无法加载文件或程序集' Microsoft.Build.Framework, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'要么 其中一个依赖项。该系统找不到指定的文件。 确认声明是否正确,即程序集 并且它的所有依赖项都可用,并且该任务包含一个 实现Microsoft.Build.Framework.ITask的公共类。 跳过目标" GenerateBuildDependencyFile"因为所有输出文件都是与输入文件相关的最新文件。 线程0x430c已退出,代码为0(0x0)。 :错误C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.targets(129,5): " GenerateRuntimeConfigurationFiles"任务意外失败。 System.MissingMethodException:找不到方法:' Boolean NuGet.Frameworks.NuGetFramework.op_Equality(NuGet.Frameworks.NuGetFramework, NuGet.Frameworks.NuGetFramework)&#39 ;. 在Microsoft.NET.Build.Tasks.LockFileExtensions.CreateProjectContext(LockFile) lockFile,NuGetFramework框架,字符串运行时,字符串 platformLibraryName) 在Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.ExecuteCore() 在Microsoft.NET.Build.Tasks.TaskBase.Execute() 在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()
因此,Typescript.Tasks.dll无法加载文件或程序集' Microsoft.Build.Framework,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'?
与System.MissingMethodException相关的错误消息:未找到方法:' Boolean NuGet.Frameworks.NuGetFramework。
我添加了这些NuGet包:
Microsoft.Build version 15.1.0.0
Microsoft.Build.Framework, version 15.1.0.0
Microsoft.Build.Tasks.Core, version 15.1.0.0
Microsoft.Build.Utilities.Core, version 15.1.0.0
Microsoft.CodeAnalysis (and all associated packages), version 2.0.0.0
我已成功加载ASP.Net MVC Core项目
workspace = MSBuildWorkspace.Create(new Dictionary<string, string>
{ { "Configuration", "Debug" } });
然后我尝试用
构建项目Microsoft.Build.Evaluation.ProjectCollection pc = new Microsoft.Build.Evaluation.ProjectCollection();
pc.DefaultToolsVersion = "15.0";
Dictionary<string, string> globalProperties = new Dictionary<string, string>();
globalProperties.Add("Configuration", "Debug");
globalProperties.Add("Platform", "Any CPU");
var targetsToBuild = new[] { "Build" };
BuildRequestData buildRequest = new BuildRequestData(projectFullPath, globalProperties, "15.0", targetsToBuild, null);
有人知道问题是什么吗?