【发布时间】:2015-07-18 10:25:42
【问题描述】:
我有一个项目,其中有特定非标准文本格式的文件。当这些文件被触摸/修改时,我想在它们上运行某个自定义编译器以生成 XML,这是整个解决方案输出的一部分。
我正在考虑创建一个 MSBuild 任务来执行此操作。它将非标准文件名作为输入并输出必要的 XML 文件。然后该任务将用于解决方案中的其他项目。
我希望该项目的新开发人员进行最少的设置。这意味着,我希望能够直接从源代码管理中获取我的解决方案的干净副本,并让构建首先构建自定义任务,然后根据需要将其应用于类中的其他项目。
我担心构建自定义任务的项目的构建输出需要将其输出程序集复制到某个已知位置,以便其他项目可以引用它。这样做的正确方法是什么?
【问题讨论】:
-
不要过度设计。将预构建的 MyCustomTask.dll 签入源代码管理,然后从您的项目中引用它,如下所示:
<UsingTask TaskName="MyCustomTask" AssemblyFile="$(MySolutionRoot)\MyBuildTools\MyCustomTask.dll" /> -
作为 S.T.说:将程序集放在“已知”位置并从那里引用它。如果您真的想要,您不必将预构建的任务 dll 放入源代码控制,但您可以使用
Csc任务从源代码动态构建它。
标签: visual-studio msbuild