Dav*_*itt 10 msbuild customtool visual-studio
我有一个Visual Studio的"自定义工具",可以将一些模板文件转换为代码.为了保持一致性和可移植性,我希望能够在Visual Studio外部构建时从MSBuild运行此模板处理器.
Visual Studio为文件创建以下代码段:
<!-- the template -->
<None Include="Template.in">
<Generator>Template Processor</Generator>
<LastGenOutput>Template.in.Designer.cs</LastGenOutput>
</None>
<!-- generated file -->
<Compile Include="Template.in.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Template.in</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
这里的问题Template.in
是它只由Studio处理,而不是由MsBuild处理,这可能导致过时的Designer.cs
文件.
是否存在可以IVsSingleFileGenerator
直接使用(包括从注册表加载其位置)的现有MSBuild任务,还是必须手动调用处理器(通过自己实现所述MSBuild任务或调整处理器)?
有趣的是,MSDN上的使用MSBuild文章说:
单个文件生成器只能在设计时访问,但MSBuild任务可以在设计时和构建时使用.因此,为了获得最大的灵活性,请使用MSBuild任务来转换和生成代码.有关更多信息,请参阅项目项(Visual Studio SDK).
更新:我已经将这个特定的自定义工具入侵到了msbuild任务中,但它并不漂亮.我仍然更喜欢维护良好的通用解决方案.我在我的博客上发布了这个来源.
当您在 VisualStudio 中指定自定义工具时,它会向您的项目或解决方案文件添加什么?由于它们只是 msbuild 文件,因此您可以使用添加的 xml 作为您自己的构建文件的模板。
归档时间: |
|
查看次数: |
3198 次 |
最近记录: |