我们有一个VS2012解决方案,其中包含十几个C#项目。其中一个C#项目使用了一个文本文件,该文件由我们编写的单独的C#工具转换为SQL。我们希望在TXT文件发生更改(发布和调试版本)时,在构建期间自动调用此TXT-2-SQL文件转换。
此外,我们希望Debug构建能够将SQL加载到本地DB中;即,调用我们现有的批处理文件之一populate_db.bat,将SQL文件名作为参数(这只是包装mysql客户端的调用并导致执行SQL)。
最好的方法是什么?
答案 0 :(得分:6)
根据我自己的研究,我发现了以下选择:
目标+执行 - 将自定义目标节点添加到现有的csproj:
< Target Name =“TXT2DB”
AfterTargets = “生成”
Condition =“'$(Configuration)'=='Debug'”
输入= “MyTextFile.txt”
输出= “MySqlFile.sql”
Label =“TXT2DB”>
< Exec Command =“$(ProjectDir)\ Tools \ txt2sql \ txt2sql.exe MyTextFile.txt MySqlFile.sql”/>
< Exec Command =“populate_db.bat MySqlFile.sql”/>
< /目标>
发布后事件 - 使用发布后事件。提到完整性,但在调试和发布时都丢弃了b / c,并且似乎对TXT文件更改不敏感。
目前,我们已选择#4作为最容易实现和维护解决方案,并满足所有要求。