首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >总是从BuildResultCode.Failure库获得Microsoft.Build

总是从BuildResultCode.Failure库获得Microsoft.Build
EN

Stack Overflow用户
提问于 2018-07-19 17:23:28
回答 1查看 744关注 0票数 0

最近,我将Microsoft.Build包与VS2017一起用于以编程方式构建C#项目。然而,我总是有BuildResultCode.Failure。不知道为什么,需要帮助,谢谢。这是我的密码:

代码语言:javascript
复制
string projectFileName = @"C:\Downloads\ToBeBuilt\ToBeBuilt\ToBeBuilt.csproj";

ProjectCollection pc = new ProjectCollection();
pc.SetGlobalProperty("Configuration", "Debug");
pc.SetGlobalProperty("Platform", "x86");
pc.SetGlobalProperty("OutDir", @"C:\Downloads\Artifacts");

Dictionary<string, string> globalProperty = new Dictionary<string, string>();
globalProperty.Add("Configuration", "Debug");
globalProperty.Add("Platform", "x86");
globalProperty.Add("OutDir", @"C:\Downloads\Artifacts");

BuildRequestData BuidlRequest = new BuildRequestData(projectFileName, globalProperty, "15.0", new string[] { "Build" }, null);
BuildResult buildResult = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), BuidlRequest);
BuildResultCode a = buildResult.OverallResult;

下面是要建设的目标项目:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  ...
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    ...
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Target Name="Build">  
    <Csc Sources="@(Compile)"/>    
  </Target> 
</Project>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-23 01:22:57

总是从BuildResultCode.Failure库获得Microsoft.Build

您可以使用日志文件MSBuild检查与继续调试类似的问题,提供:

代码语言:javascript
复制
string projectFileName = Directory.GetCurrentDirectory() + "\\build\\Solution.sln";
ProjectCollection pc = new ProjectCollection();
Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
GlobalProperty.Add("Configuration", "Release");
GlobalProperty.Add("Platform", "Any CPU");
GlobalProperty.Add("OutputPath", Directory.GetCurrentDirectory() + "\\build\\\bin\\Release");

BuildParameters bp = new BuildParameters(pc);
bp.Loggers = new[] {
  new FileLogger
  {
    Verbosity = LoggerVerbosity.Detailed,
    ShowSummary = true,
    SkipProjectStartedText = true
  }
};

BuildManager.DefaultBuildManager.BeginBuild(bp);

BuildRequestData BuildRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Build" }, null);

BuildSubmission BuildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(BuildRequest);
BuildSubmission.Execute();
BuildManager.DefaultBuildManager.EndBuild();
if (BuildSubmission.BuildResult.OverallResult == BuildResultCode.Failure)
  {
    throw new Exception();
  }
}

认证:在.sln可执行文件中构建C#

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51428600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档