【发布时间】:2013-10-15 20:31:09
【问题描述】:
我有几个在构建过程中生成新文件的 MSBuild 任务。自定义目标在生成文件后将文件添加到 Compile ItemGroup。因此,如果运行我的目标,构建将起作用,但我想使用 MSBuild 的增量构建功能,如果自上次构建以来未修改文件,则跳过这些目标。但如果构建跳过目标,则不会包含生成的文件。
所以我想让构建将文件添加到解决方案资源管理器。我意识到我可以手动添加文件,这可能是我必须走的路线,但我真的希望以编程方式添加生成的文件。
我目前有一个名为 Custom.targets 的文件。它包含在每个项目中并注入新目标。我曾尝试在项目中包含 *.cs,但没有奏效。
【问题讨论】:
-
您是在谈论向 csproj 文件添加“条目”吗?还是 .sln 文件?还是什么?
-
这些将是 csproj 文件中的条目。
-
您可以在此处关注答案(我为自己的问题留下的):stackoverflow.com/questions/13867117/… 我使用 Msbuild (xmlupdate) 任务通过 msbuild 代码添加“链接文件”。
-
哎呀。我添加了一个链接文件……您可以更改我的代码以添加您想要的任何内容……但前提是……您只需调用任务来操作 xml。我会得到我使用的目标的源代码,它可以理解正在发生的事情......通过 DOM 操作。
-
我想如果你在你的
BeforeBuild文件中调用通过Custom.targets导入的Targets*.csproj文件然后添加一个CompileItemGroup如下将包括任何*.cs由Custom.targets生成的文件放入*.csproj文件夹或该文件夹下的任何文件夹中。<Compile Include="**\*.cs" />。如果您想转到 *csproj 文件夹上方的文件夹,请尝试<Compile Include="..\**\*.cs" />。 `..\` 的数量将取决于您想要提升的文件夹级别数
标签: c# visual-studio visual-studio-2012 msbuild