Nmk*_*nas 2 c# msbuild visual-studio
我想使用MSBuild API自动化我的构建,但它给了我一个错误.我在Visual Studio 2015中有自动化项目.它引用了MSBuild v12.0 dll.
代码我用来构建解决方案:
private bool Execute()
{
var buildProperties = new Dictionary<string, string>();
buildProperties["Configuration"] = "Debug";
var solution = @"C:\test\test.sln";
bool success = Build(solution, buildProperties)
return success;
}
private bool Build(string solution, Dictionary<string, string> buildProperties)
{
Guard.ValidPath(solution, nameof(solution));
BuildParameters buildParam = new BuildParameters()
BuildRequestData buildRequest = new BuildRequestData(solution, buildProperties, null, new string[] { "Build" }, null);
BuildResult buildResult = BuildManager.DefaultBuildManager.Build(buildParam, buildRequest);
if (buildResult.OverallResult == BuildResultCode.Success)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
该解决方案有一个项目.它的配置:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
etc.
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
:错误C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Data.Entity.targets(65,5):无法从程序集"C:\ Windows\Microsoft"实例化"EntityDeploySplit"任务. NET \框架\ v4.0.30319\Microsoft.Data.Entity.Build.Tasks.dll".请验证是否使用与计算机上安装的Microsoft.Build.Framework程序集相同的Microsoft.Build.Framework程序集版本构建了任务程序集,并确保主机应用程序没有缺少Microsoft.Build.Framework的绑定重定向.无法将"Microsoft.Data.Entity.Build.Tasks.EntityDeploySplit"类型的对象强制转换为"Microsoft.Build.Framework.ITask"
知道如何克服这个错误吗?为什么会这样?
小智 5
有一个类似的问题,但另一个错误消息.我的Web项目无法构建,因为他们试图将他们的任务转发给Microsoft.Build.Framework.ITask.我认为问题是他们使用的是旧版本,因此无法投射到新版本的ITask.为MSBuild 3.5找到了这个解决方案,它也适用于14.0.
MSDN论坛:MSBuild崩溃与"消息"任务无法实例化异常
我将3.5更改为14.0并将其添加到我的app.config:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |