我有一个 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>
这里的问题是Template.in
仅由Studio处理,而不由MsBuild处理,这可能会导致过时Designer.cs
files.
是否存在可以使用的现有 MSBuild 任务IVsSingleFileGenerator
直接(包括从注册表加载其位置)还是必须手动调用处理器(通过自己实现所述 MSBuild 任务或调整处理器)?
有趣的是,使用 MSBuild http://msdn.microsoft.com/en-us/library/bb166190.aspxMSDN 上的文章说:
可以访问单个文件生成器
仅在设计时,但 MSBuild 任务
可以在设计时使用
构建时间。为了获得最大的灵活性,
因此,使用 MSBuild 任务
转换并生成代码。了解更多
信息,请参阅项目项(视觉
工作室 SDK)。
Update:我已经将这个特定的自定义工具侵入到 msbuild 任务中,但它并不漂亮。我仍然更喜欢维护良好的通用解决方案。我有发布了来源 https://web.archive.org/web/20100905141112/http://dasz.at/index.php/2010/02/building-a-simple-msbuild-task/在我的博客上。
当您在 VisualStudio 中指定自定义工具时,它会向您的项目或解决方案文件添加什么?由于它们只是 msbuild 文件,因此您可以使用添加的 xml 作为您自己的构建文件的模板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)