【问题标题】:DTE.SolutionBuild not building projectDTE.SolutionBuild 不构建项目
【发布时间】:2018-11-01 13:45:38
【问题描述】:

我正在尝试使用 DTE.SolutionBuild 接口在 Visual Studio 扩展 (.vsix) 中构建 csproj:

private void BuildProject(Project vsProject)
{
        var sb = vsProject.DTE.Solution.SolutionBuild as SolutionBuild;
        sb.SolutionConfigurations.Item(1).Activate();
        sb.BuildProject(sb.SolutionConfigurations.Item(1).Name, vsProject.UniqueName, true);
}

但由于某种原因,该项目没有编译。没有显示错误,创建了一个名为 SolutionConfiguration 的文件夹,但没有生成项目程序集。任何帮助都将不胜感激。

UPDATE1:我也试过了,结果是一样的:

Microsoft.Build.Evaluation.Project p = new Microsoft.Build.Evaluation.Project(vsProject.FullName);
p.Build();

【问题讨论】:

    标签: c# .net msbuild visual-studio-extensions csproj


    【解决方案1】:

    我是这样的:

    private void Execute(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        _SelectedObject = this.GetProjectItem();
        _VsProject = _SelectedObject.ContainingProject;
        this.BuildProject(_VsProject);
    }
    
    private void BuildProject(EnvDTE.Project vsProject)
    {
        DTE2 dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as DTE2;
        dte.Events.BuildEvents.OnBuildDone -= BuildEvents_OnBuildDone;
        dte.Events.BuildEvents.OnBuildDone += BuildEvents_OnBuildDone;
        dte.ExecuteCommand("Build.RebuildSolution");
    }
    
    private void BuildEvents_OnBuildDone(vsBuildScope Scope, vsBuildAction Action)
    {
        //Your action after build here
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 2018-10-29
      • 2011-07-23
      相关资源
      最近更新 更多