删除文件时,VS 2015项目未重建

时间:2015-10-28 12:20:24

标签: c# msbuild visual-studio-2015

我的C#项目中有一个配置文件,它从源代码控制中排除(它是每个开发人员本地的)。但是,如果文件不存在,我希望从相应的“.template”文件(在源代码管理中)复制该文件。为此,我添加了一个MSBuild项类型和目标,如下所示:

  <ItemGroup>
    <AvailableItemName Include="LocalConfigTemplate" />
  </ItemGroup>

  <Target Name="CopyFromTemplateIfNeeded" BeforeTargets="BeforeBuild" Inputs="@(LocalConfigTemplate)" Outputs="@(LocalConfigTemplate->'%(FileName)')">
    <Copy Condition="!Exists(%(LocalConfigTemplate.Filename))" SourceFiles="@(LocalConfigTemplate)" DestinationFiles="@(LocalConfigTemplate->'%(FileName)')" />
  </Target>

(基于How to hide files generated by custom tool in Visual Studio)这是一个单独的文件,包含在项目文件中(如果重要的话,在Microsoft.CSharp.targets之前)。

它可以工作,但是当我删除目标文件(local.config)并构建项目时,VS认为它是“最新的”并且不构建。如何检测输出文件是否丢失并在此情况下构建?

1 个答案:

答案 0 :(得分:0)

尝试在重建之前执行Clean,也许Visual Studio正在从bin目录中选择文件。