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

在C#控制台应用程序中生成文件路由时获取错误的文件路径,c#,sql,file,console-application,readfile,C#,Sql,File,Console Application,Readfile,嗨,我正在尝试在C#控制台应用程序中读取sql脚本。抱歉,如果这是超基本的,但我有问题,因为它生成的文件路由总是从项目的bin文件夹开始 公共静态资源(IConfiguration配置,string testUrlExtension) { 尝试 { var azureDatabaseUrl=String.Format(配置[“SqlDatabase:BaseUrl”],$“test{testUrlExtension}”); SqlConnectionStringBuilder connBuild

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

公共静态资源(IConfiguration配置,string testUrlExtension)
{
尝试
{
var azureDatabaseUrl=String.Format(配置[“SqlDatabase:BaseUrl”],$“test{testUrlExtension}”);
SqlConnectionStringBuilder connBuilder=新的SqlConnectionStringBuilder();
connBuilder.DataSource=azureDatabaseUrl;
connBuilder.UserID=config[“SqlDatabase:ZupaKeyReleaseUserName”];
connBuilder.Password=config[“SqlDatabase:ZupaKeyReleasePassword”];
connBuilder.InitialCatalog=“zupaauthentication”;
使用(SqlConnection连接=新的SqlConnection(connBuilder.ConnectionString))
{
使用(SqlCommand=connection.CreateCommand())
{
connection.Open();
var getLocalPathTopProject=Path.GetDirectoryName(Assembly.getExecutionGassembly().CodeBase).Split(“Zupa.ReleaseDeploymentAutoConfigure”)[0];
var routeToApiResourseSqlScript=$“{getLocalPathTopProject}Zupa.ReleaseDeploymentAutoConfigure\\Zupa.ReleaseDeploymentAutoConfigure\\Sql\\Scripts\\”;
var apiResourcesFileName=“AddApiResorces.sql”;
var fullPathToSqlScript=$“{routeToApiresourcesSqlscript}{apiResourcesFileName}”;
command.CommandText=File.ReadAllText(fullPathToSqlScript);
command.ExecuteNonQuery();
connection.Close();
}
}
}
捕获(SQLE异常)
{
Console.WriteLine(例如InnerException);
}
}
接收到的错误如下所示:

出现问题,请尝试再次配置版本。 System.IO.IOException:文件名、目录名或卷标语法不正确:

'C:\Zupa\u Source\u Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\bin\Debug\netcoreapp3.1\file:\C:\Zupa\u Source\u Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\Sql\Scripts\AddapResorces.Sql'

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

文件:\C:\Zupa\u Source\u Code\Zupa.ReleaseDeploymentAutoConfigure\Zupa.ReleaseDeploymentAutoConfigure\Sql\Scripts\AddApiResorces.Sql

提前感谢,, Chris.

更改此行中的“CodeBase”

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

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

这真的不是在问问题的阶段,它仍然是一个调试问题。。。逐步执行此代码,检查变量,确定问题,试着解决这个问题。我知道dot net正在从bin文件夹调试中运行项目,因此当调用.getWrokingDirectory时,它会将我的文件路径预先正确地构造到项目运行所在的随机工作目录中。file:`对我来说不合适,这可能没有什么帮助。也许你的意思是?这解决了问题,谢谢你,我不知道为什么,但它成功了。