visual-studio - 在构建时运行 Visual Studio 自定义工具

标签 visual-studio msbuild build-automation custom-build

我有一个脚本可以将文本文件转换为资源文件,这样我就可以通过将不同语言的文本文件转换为不同的资源来获得多语言支持。运行脚本以获取 resx 文件后,我必须运行自定义构建工具(如此处所述: Link to Code Project )以创建 Designer.cs文件以使用新文件。

按照我应该能够通过单击一个按钮来构建整个项目的理念,我如何删除必须显式调用自定义构建工具以制作代码隐藏文件的步骤?

我试过自动删除 Designer.cs文件作为预构建步骤,因为我认为如果没有 Designer.cs 文件但没有骰子,自定义构建工具会自动运行。

因此,我希望 Visual Studio/msbuild 中的构建脚本执行以下操作:
1)将文本转换为resx(完成)
2)将 resx 文件移动到适当的目录(完成)
3)使用自定义构建工具创建designer.cs文件(未完成)

这是最后一步...

最佳答案

不幸的是,我认为没有一种简单的方法可以做到这一点。自定义构建工具仅在 VS.NET 中运行 - 当您从命令行使用 MSBuild 构建项目时,它们不会运行。

通常,如果您可以选择将构建工具编写为客户构建工具或 MSBuild 任务,那么每次都选择 MSBuild 任务,因为这些任务将在 VS.NET 和命令行中运行。

资源的designer.cs 文件用于支持您的编码。它们为您提供对资源文件的强类型访问。所以,只要你在 VS.NET 中创建你的文化不变资源(并让它创建 .designer.cs 文件),然后添加额外的语言支持(额外的 .resx 文件)应该可以正常工作。

但是,如果您的文本文件是您的主要资源文件,并且您首先将新的资源字符串添加到这些文本文件中,那么您需要找到另一种生成 .cs 文件的方法,以允许您针对这些资源进行编码。如果您必须这样做,您自己(或类似的东西)生成 .designer.cs 文件不会那么困难。使用 CodeDom 或 T4,您可以创建助手类,使用现有的 .designer.cs 文件作为模板。

关于visual-studio - 在构建时运行 Visual Studio 自定义工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894806/

相关文章:

c++ - Il 不匹配 'P1' 版本 '20080116' 和 'P2' 版本 '20070207'

visual-studio - 将多组断点保存为不同的配置文件 - Visual Studio

c# - 为什么 AutogenerateBindingRedirects 不适用于 Visual Studio 2017 中的 Web.config

python - 从 python 启动 VS2008 构建

tfs - TFS 2015 Build 中的代码指标

c++ - 如何识别导致简单应用程序在 Windows 中崩溃的原因? (应用程序在 Visual Studio 中编译成功 + 帖子中出现完整错误)

c++ - 从 cpp 文件更改文本框

continuous-integration - Jenkins 的模板插件

command-line - 在 MSBuild 参数中设置应用程序名称

msbuild - 从MSBuild中的AssemblyInfo访问版本