首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从命令提示符运行控制台应用程序

从命令提示符运行控制台应用程序
EN

Stack Overflow用户
提问于 2021-02-18 23:22:22
回答 1查看 101关注 0票数 1

我使用Jetbrains rider创建了一个控制台应用程序。然后,我将控制台应用程序发布到一个文件夹。我将该文件夹添加到我的系统路径中。我能跑echo %PATH%

并看到文件夹在path中,但是,如果我在文件夹中,则只能运行控制台应用程序。如果我放入可执行文件的完整路径,它不会发生事件。

C:\Program Files

我还检查了另一个文件的文件权限,这似乎是相同的。我禁用了一个病毒防护,但也没有解决这个问题。

有没有想过为什么它不能运行?我运行的是Windows10。

解决方案

在创建应用程序配置时设置基本路径。

代码语言:javascript
运行
复制
builder
    .SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location)) // set the base path
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 02:45:31

您的应用程序的编码不是很好。它很可能引用存储在可执行文件目录中的其他文件,而不使用任何路径,这意味着使用相对于当前目录的路径引用这些文件。

请参阅有关的Microsoft文档

命名文件、路径和命名空间

..。

您的应用程序的当前目录可以是包含应用程序可执行文件的目录,但还有数千个其他目录可以是启动应用程序时的当前目录。

每种编程/脚本语言都有一种方法来确定/获取其自身的完全限定路径,即当前执行的可执行或解释的脚本文件存储在哪个目录中,这称为

应用程序目录

或者

程序文件目录

或者

脚本目录

..。

此路径必须与与可执行文件/script相同的目录或application/script目录的子目录中的其他文件的文件名连接在一起。然后,对于可执行文件/脚本来说,哪个目录是当前目录就不再重要了,因为它使用完全限定名引用了它自己的所有文件/文件夹。

解决方案可以在代码中使用:

代码语言:javascript
运行
复制
builder.SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location))

另请参阅:

如何在.NET控制台应用程序中获取应用程序的路径?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66262899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档