我有一个需要部署的 .NET Core 6.0 控制台应用程序。它是使用 Visual Studio 2022 用 C# 编写的,并使用
app.config
文件。
我在 VS 中创建了一个发布配置文件(参见屏幕截图),并将其部署到本地进行测试,然后再部署到我的服务器(附上创建的文件列表)。我使用
.\executablename.exe
运行该应用程序,它确实运行了,但导致了错误。它不会读取配置文件来提取运行应用程序所需的值。我在这里缺少什么?
注意:如果我从项目所在的文件夹运行应用程序,则该应用程序可以从命令行正常运行。但是,我想要一个独立的部署,因此不需要在服务器上安装 .NET Core 6.0。
问题是,运行时,应用程序会查找名为
{AssemblyFileName}.config
的文件。
当您从 dll 运行它时,它会查找
{ProjectName}.dll.config
。
当您将其作为独立的可执行文件运行时,您的配置处理程序会搜索文件
{ProjectName}.exe.config
,该文件不存在。
将文件
{ProjectName}.dll.config
复制到名为 {ProjectName}.exe.config
的新文件中,即可运行。
(就我而言,这是 dotnet 工具中的一个错误。
*.exe.config
文件应该由构建/发布过程自动创建。)