【问题标题】:How to get actual project output using microsoft.build.evaluation.project in c#如何在 c# 中使用 microsoft.build.evaluation.project 获取实际项目输出
【发布时间】:2016-01-28 15:43:15
【问题描述】:

我需要知道项目中实际的输出文件名完整路径。 我使用 microsoft.build.evaluation.project 打开具有正确属性的项目,并尝试使用属性 TargetPath、TargetDir、TargetFileName,但我找不到一致的属性来为我提供带有路径的输出文件名。 在某些项目中它有效,而在某些项目中则无效。我同时处理 csproj 文件和 vcxproj 文件。

【问题讨论】:

    标签: c#-4.0 project csproj vcxproj


    【解决方案1】:

    输出路径与项目文件夹有关。您可以通过属性OutputPath 从项目文件中获取其值(假设projectMicrosoft.Build.Evaluation.Project 的一个实例)

    var outputPath = project.GetPropertyValue("OutputPath")
    

    然后你可以使用 Path.Combine 来连接你的输出路径和项目文件夹

    var fullpath =  Path.Combine(projectDirectory, outputPath);
    

    【讨论】:

      【解决方案2】:

      除了Ask的回答:

      如果您需要为当前配置以外的其他配置获取 OutputPath(例如,Release),您应该执行下一步:

      project.SetProperty("Configuration", "Release");
      project.ReevaluateIfNecessary();
      var outputPath = project.GetPropertyValue("OutputPath");
      

      ProjectCollection.GlobalProjectCollection.SetGlobalProperty("Configuration", "Release");
      load project
      var outputPath = project.GetPropertyValue("OutputPath");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 2016-08-04
        • 2011-03-17
        • 1970-01-01
        相关资源
        最近更新 更多