在 C# 控制台应用程序中生成文件路径时获取错误的文件路径

Getting wrong file path when generating file route in C# Console App

您好,我正在尝试在 C# 控制台应用程序中读取 sql 脚本。抱歉,如果这是超级基本的,但我遇到了问题,因为它生成的文件路径总是从项目的 bin 文件夹开始。

        public static void ApiResources(IConfiguration config, string testUrlExtension)
        {
            try
            {
                var azureDatabaseUrl = String.Format(config["SqlDatabase:BaseUrl"], $"test{testUrlExtension}");

                SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder();
                connBuilder.DataSource = azureDatabaseUrl;
                connBuilder.UserID = config["SqlDatabase:ZupaKeyReleaseUserName"];
                connBuilder.Password = config["SqlDatabase:ZupaKeyReleasePassword"];
                connBuilder.InitialCatalog = "zupaauthentication";

                using (SqlConnection connection = new SqlConnection(connBuilder.ConnectionString))
                {
                    using (SqlCommand command = connection.CreateCommand())
                    {
                        connection.Open();
                        var GetLocalPathToProject = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Split("Zupa.ReleaseDeploymentAutoConfigure")[0];
                        var routeToApiResourseSqlScript = $"{GetLocalPathToProject}Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\Sql\Scripts\";
                        var apiResourcesFileName = "AddApiResorces.sql";
                        var fullPathToSqlScript = $"{routeToApiResourseSqlScript}{apiResourcesFileName}";

                        command.CommandText = File.ReadAllText(fullPathToSqlScript);
                        command.ExecuteNonQuery();

                        connection.Close();
                    }
                }
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.InnerException);
            }
        }

我收到的错误如下:

出了点问题,尝试重新配置版本。 System.IO.IOException: 文件名、目录名或卷标语法不正确。 :

'C:\Zupa_Source_Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\bin\Debug\netcoreapp3.1\file:\C:\Zupa_Source_Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\Sql\Scripts\AddApiResorces.sql'

正在将正确的路径添加到 bin 目录的末尾,即

file:\C:\Zupa_Source_Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\Sql\Scripts\AddApiResorces.sql

提前致谢, 克里斯

更改"CodeBase"这一行

var GetLocalPathToProject = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Split("Zupa.ReleaseDeploymentAutoConfigure")[0];

待定地点:

var GetLocalPathToProject = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).Split("Zupa.ReleaseDeploymentAutoConfigure")[0];