Joh*_*ski 7 .net c# msbuild visual-studio-2015
我目前正在尝试使用Microsoft.Build.Execution.BuildManagerC#winForms应用程序中的C++解决方案.
从其他帖子我得到了以下代码,它使用了一个Logger,所以我可以看到一些输出.该BuildSubmission.BuildResult.OverallResult是试图建立一个C++应用程序时,总是失败.
string projectFileName = "mySolution.sln";
ProjectCollection pc = new ProjectCollection();
Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
GlobalProperty.Add("Configuration", "Release");
GlobalProperty.Add("Platform", "Win32");
BuildParameters bp = new BuildParameters(pc);
bp.Loggers = new[] {
new ConsoleLogger
{
Verbosity = LoggerVerbosity.Minimal,
ShowSummary = true,
SkipProjectStartedText = true
}
};
BuildManager.DefaultBuildManager.BeginBuild(bp);
BuildRequestData BuildRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Clean" }, null);
BuildSubmission BuildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(BuildRequest);
BuildSubmission.Execute();
BuildManager.DefaultBuildManager.EndBuild();
if (BuildSubmission.BuildResult.OverallResult == BuildResultCode.Failure)
{
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我得到以下输出:
C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppClean.targets(76,5):错误MSB4127:无法从程序集"C:C"实例化"CppClean"任务\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Build.CppTasks.Common.dll".请验证是否使用与计算机上安装的Microsoft.Build.Framework程序集相同的Microsoft.Build.Framework程序集版本构建了任务程序集,并确保主机应用程序没有缺少Microsoft.Build.Framework的绑定重定向.无法将"Microsoft.Build.CPPTasks.CPPClean"类型的对象强制转换为"Microsoft.Build.Framework.ITask".
C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppClean.targets(76,5):错误MSB4060:"CppClean"任务已声明或使用不正确,或者在执行期间失败施工.检查任务名称和程序集名称的拼写.
任何人都可以解释为什么我收到这条消息是如何解决它的?
PS.我更喜欢使用更新c#代码中的对象/变量的解决方案,或者将c ++解决方案中的设置更新为涉及手动更新MSBuild或Visual Studio文件的解决方案.我在一个有多个开发人员的环境中工作,我宁愿不必将这些更改传播给团队中的每个人,以便此应用程序能够为他们工作.
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |