Ska*_*gen 18 visual-studio-2010 visual-studio
我有一个带有后期构建事件的VS项目,该事件带有命令行命令,可将文件(.dll)复制到bin目标目录(调试或发布).当我对项目进行"清理"时,每个东西都被清理干净,但这个文件仍然存在.有没有办法广告后清理事件,所以我也可以删除此文件?
Leo*_*rke 17
您可以直接编辑项目文件,并将目标添加到文件末尾. BeforeClean
并且AfterClean
是这里解释的目标:
http://blogs.msdn.com/b/msbuild/archive/2005/11/23/496396.aspx
您应该能够在目标中放置一个删除任务.
编辑 刚试过这个(右键单击项目 - >卸载 - >右键单击 - >编辑),您需要以下目标:
<Target Name="AfterClean">
<Delete Files="$(TargetDir)\*.txt" />
</Target>
Run Code Online (Sandbox Code Playgroud)
这在您清理项目但不是解决方案时有效 - 它可以工作但不是100%.
Fra*_*tis 11
我发现使用"删除文件"的Leom Burke的答案不适用于通配符,并且不会告诉您出现任何问题.这就是我所做的 -
<Target Name="BeforeClean">
<Message Text="Cleaning other files..."/>
<Exec Command="del $(ProjectDir)css\*.* /F /Q"/>
<Exec Command="del $(ProjectDir)images\*.* /F /Q" />
<Exec Command="del $(ProjectDir)js\*.* /F /Q" />
<Exec Command="del $(ProjectDir)usercontrols\*.* /F /Q" />
<Exec Command="del $(ProjectDir)MasterPages\*.* /F /Q" />
<Exec Command="del $(ProjectDir)App_Data\TEMP\*.* /F /Q /S" />
<Exec Command="del $(ProjectDir)App_Data\Logs\*.* /F /Q /S" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我写了上面的内容来删除umbraco解决方案中的文件,这样当我对源代码控制中的内容进行差异处理时,它就不会让我感到困惑.
小智 9
您可以使用内置的Delete功能执行通配符.
<Target Name="AfterClean">
<ItemGroup>
<FilesToDelete Include="$(TargetDir)\*.txt"/>
</ItemGroup>
<Delete Files="@(FilesToDelete)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我认为 Visual Studio 2017 发生了一些变化。
适用于标签:AfterTargets="Clean"
<Target Name="AfterClean" AfterTargets="Clean">
<!-- Remove bin folder -->
<RemoveDir Directories="$(TargetDir)" />
<!-- Remove obj folder -->
<RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
关于AfterTargets的 @ scrat789 提示。
对于VS 2017,v15.6.0 Preview 2.0,我得到以下结果:
<Target Name="MyDistClean" AfterTargets="Clean">
<Message Text="Deleting wwwroot\dist files" Importance="high" />
<Delete Files="$(ProjectDir)\wwwroot\dist\*.*" ContinueOnError="true" />
</Target>
Run Code Online (Sandbox Code Playgroud)
一些东西:
这是经过改进的任务,可以在Clean时清除webpack dist目录:
<Target Name="MyDistClean" AfterTargets="Clean">
<ItemGroup>
<DistDir Include="$(ProjectDir)wwwroot\dist" />
</ItemGroup>
<Message Text="Deleting @(DistDir)" Importance="high" />
<RemoveDir Directories="@(DistDir)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7866 次 |
最近记录: |