gpt4 book ai didi

c# - MSBuild :Compile generator work 如何

转载 作者:行者123 更新时间:2023-12-04 11:15:51 31 4
gpt4 key购买 nike

当文件保存在 Visual Studio 中时,我试图使用 MSBuild:Compile 生成器来触发我的自定义文件类型的编译(应该像自定义工具一样工作,但使用 msbuild)。构建过程本身正在运行,但如果保存文件,它似乎不会被触发。

有人可以解释一下 MSBuild:Compile 条目到底在做什么吗?到目前为止,我刚刚在 antlr msbuild 脚本和 XAML 中看到了这一点。

下面是我用来将 *.myext 文件编译为 *.g.ts 文件的 msbuild 设置的摘录。

我的目标文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="SampleNamespace.CustomCompilerTask" AssemblyFile="MyTask.dll" />

<PropertyGroup>
<PrepareResourcesDependsOn>
CustomLayoutCompile;
$(PrepareResourcesDependsOn)
</PrepareResourcesDependsOn>
</PropertyGroup>

<ItemDefinitionGroup>
<CustomTypeCompile>
<Generator>MSBuild:Compile</Generator>
</CustomTypeCompile>
</ItemDefinitionGroup>

<Target Name="CustomLayoutCompile" Inputs="@(TypeScriptCompile);@(CustomTypeCompile)" Outputs="@(CustomTypeCompile->'%(RootDir)%(Directory)%(Filename).g.ts')">
<CustomCompilerTask TypeScriptFiles="@(TypeScriptCompile)" LayoutFiles="@(CustomTypeCompile)" />
</Target>
</Project>

项目文件中的条目:
....

<ItemGroup>
<TypeScriptCompile Include="MyControl.ts">
<DependentUpon>MyControl.myext</DependentUpon>
</TypeScriptCompile>
<TypeScriptCompile Include="MyControl.g.ts">
<DependentUpon>MyControl.myext</DependentUpon>
</TypeScriptCompile>
</ItemGroup>
<ItemGroup>
<CustomTypeCompile Include="MyControl.myext">
<Generator>MSBuild:Compile</Generator>
</CustomTypeCompile>
</ItemGroup>
....

<Import Project="path/to/my/target/file/mytargets.targets" />

....

最佳答案

我正在使用 VS 2019 并且遇到了同样的问题。我终于找到了一种解决方法,这使问题对我来说更像是 VisualStudio/MSBuild 错误。我的解决方法是,当您定义 ItemDefinitionGroup 时,定义一个自定义/扩展文件属性页面,如下所示。它对我有用。希望它也适用于其他所有人。

<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)CustomPerperties.CSharp.xml">
<Context>File;BrowseObject</Context>
</PropertyPageSchema>
<AvailableItemName Include="CustomTypeCompile" />
</ItemGroup>

关于c# - MSBuild :Compile generator work 如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473565/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com