编译/调试时,VS是否应该删除bin\debug区域中现有的文件?

5

问题1 - 在进行编译/调试时,VS是否应该删除bin\debug区域中的现有文件?(适用于VS2008)

如果不是,则可以请教:

问题2 - 我的WinForms检查sqlite.db3文件是否存在,并在需要时(以编程方式)创建它。如果我想要的行为是每次进行编译/调试时都清除目标Debug区域,以便程序可以运行构建数据库文件的代码,我该如何组织呢?

谢谢


我认为这个问题缺乏上下文并且不是很清晰。 - Rahul Soni
@Rahul - 对我来说,这个问题似乎足够清晰明了。 - Michael Petrotta
@Michael,我同意你的“现在”观点……因为Greg已经编辑过了,而且我也能够清楚地理解。谢谢Greg。 - Rahul Soni
3个回答

2

只需添加一个PreBuild事件即可。

编辑添加:

好的...看起来有人想要所有东西都嚼碎并准备好吞咽。好的!

  1. 右键单击项目,选择属性
  2. 导航到

    a. 如果是VB项目,则为Compile选项卡,然后单击Build Events按钮

    b. 如果是C#项目,则为Build Events选项卡

  3. pre-build event command line中键入:

    IF EXIST "$(TargetDir)\sqlite.db3" DEL "$(TargetDir)\sqlite.db3"

就这样。

下次,多试一会儿...


谢谢 - 第一次重新构建事件 - 我会尝试找到有关构建事件语法的参考页面。 - Greg

2

“Clean”只会删除Visual Studio明确复制到目标目录(您的可执行文件、依赖的dll以及那些标记了适当的“复制到输出目录”值的文件)的文件。

您可以创建一个预构建或后构建任务来删除相关文件。例如:del $(TargetDir)\sqlite.db3。在项目属性中查看“生成事件”选项卡以获取这些事件。


谢谢 - 收到一个“命令...以代码1退出”的错误提示 - 有什么想法吗?路径看起来没问题,尽管其中有空格。此外,在预构建任务中是否有一种方法可以执行“如果存在则删除xxx”的操作? - Greg
@Greg - 是的,有的。请看Paulo的回答。 - Michael Petrotta

1

每个项目都有可以在构建之前或之后运行的事件。因此,根据操作是在构建之前还是之后发生,选择第一个/最后一个要构建的项目(通过使其依赖于其他所有项目来强制执行),并添加一些批处理脚本以执行所需操作。MSBuild任务也非常适合此类操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接