Visual Studio和自定义msbuild任务

时间:2018-07-29 18:59:39

标签: visual-studio msbuild visual-studio-2017

我正在处理自定义MSBuild任务,以调用现有的源生成工具来重新格式化错误输出,以便它与Visual Studio的文件名和行号期望匹配。我的工作是这样的:如果我(从命令行或在VS本身内)构建项目,则我的自定义任务会运行,并且在VS内部进行构建的情况下,构建窗口的输出是我想要的。

但是,Visual Studio项目资源管理器实际上并未显示输入文件。我已经添加了AvailableItemName和PropertyPageSchema项目,还向工具->选项,“项目和解决方案”->“ VC ++项目设置”,“要包括的扩展名”添加了文件扩展名,甚至尝试更改“源代码”的扩展名列表我的测试项目中的“文件”组。我还想念什么?

这是我的.targets文件(我添加了一个.user.props(在意识到XML存在问题后进行了更新,但修复并未解决解决方案资源管理器问题)

<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions
    xmlns="http://schemas.microsoft.com/build/2009/properties"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:sys="clr-namespace:System;assembly=mscorlib">

    <ItemType
    Name="ToolName"
    DisplayName="Tool" />

    <ContentType Name="ToolName" DisplayName="Tool Name" ItemType="ToolName">
    </ContentType>
    <FileExtension Name=".<ext>" ContentType="ToolName">
    </FileExtension>

    <Rule Name="ToolName" PageTemplate="tool" DisplayName="Tool" Order="5">
        <Rule.Categories>
            <Category Name="General" DisplayName="General" />
        </Rule.Categories>
        <Rule.DataSource>
            <DataSource Persistence="ProjectFile" ItemType="ToolName" Label="" HasConfigurationCondition="true" />
        </Rule.DataSource>
        <StringProperty Name="OutputFile" DisplayName="Output File" Description="Names the produced output file" Category="General"/>
        <StringProperty Name="HeaderFile" DisplayName="Header File" Description="Names the produced header file" Category="General"/>
        <StringProperty Name="ReportFile" DisplayName="Report File" Description="Names the produced report file" Category="General"/>
    </Rule>
</ProjectSchemaDefinitions>

1 个答案:

答案 0 :(得分:0)

好的,我能够找出问题所在,这是我在编辑中修复的XML问题的组合,然后需要重新启动VS,而不仅仅是重新加载测试项目。重新启动(针对不相关的内容)后,我的文件现在显示在解决方案资源管理器中,并正确地参与了依赖项解析(这是我要问的问题,在解决UI问题后,我是否仍然遇到问题)。