如何使用MSBuild在输出文件夹中自动创建文件夹?

时间:2017-03-16 09:55:39

标签: c# msbuild

我正在使用VS Code和Net Core 1.1.1

我需要创建一个名为" Database"的文件夹。在构建时我的输出目录中。这是我希望在创建后存储sqlite数据库的文件夹。

我已经将文件复制到输出文件夹中,如下所示:

<ItemGroup>
    <Content Include="appsettings.json">
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="Data\\Seed\\Countries.csv">
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
</ItemGroup>

我应该如何修改.csproj文件以在输出目录中自动创建我需要的文件夹?

正如this旧问题中所述,我尝试添加以下代码,但未创建该文件夹。

<Target Name="efcore">
    <MakeDir Directories="$(OutDir)Database" Condition="!Exists('$(OutDir)Database')" />
</Target>

1 个答案:

答案 0 :(得分:6)

你几乎拥有它。您需要通过添加“AfterTargets”将目标链接到构建系统。

OdbcConnection cnn;
                cnn = new OdbcConnection(azureConnection);
                using (OdbcCommand command = cnn.CreateCommand())
                {
                    command.CommandText = "{call sp_Get_Excel_Data(?,?,?,?,?,?,?,?)}";
                    command.Parameters.AddWithValue("@StartDate", startDate);
                    command.Parameters.AddWithValue("@EndDate", endDate);
                    command.Parameters.AddWithValue("@startTime", startTime);
                    command.Parameters.AddWithValue("@endTime", endTime);
                    command.Parameters.AddWithValue("@rptSymbol", tickerSymbol);
                    command.Parameters.AddWithValue("@reg", RegId);
                    command.Parameters.AddWithValue("@events", events);
                    command.Parameters.AddWithValue("@userId", userId);

                    DataTable dataTable = new DataTable();

                    cnn.Open();

                    //DataTable
                    OdbcDataAdapter adapter = new OdbcDataAdapter(command);
                    adapter.Fill(dataTable);

                    //DataSet
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);

                    string[] colNames = new string[dataTable.Columns.Count];
                    int col = 0;

                    foreach (DataColumn dc in dataTable.Columns)
                        colNames[col++] = dc.ColumnName;
                }