第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

試圖打開(kāi)他人的應(yīng)用程序配置文件

試圖打開(kāi)他人的應(yīng)用程序配置文件

C#
慕桂英546537 2021-11-07 20:34:45
我正在使用 C# 和 .NET Framework 4.7 開(kāi)發(fā) WinForm 應(yīng)用程序。使用這個(gè)應(yīng)用程序,我試圖從另一個(gè)應(yīng)用程序加載配置文件:string applicationName = Environment.GetCommandLineArgs()[1];if (!string.IsNullOrWhiteSpace(applicationName)){    if (!applicationName.EndsWith(".exe"))        applicationName += ".exe";    string exePath =         Path.Combine(Environment.CurrentDirectory, applicationName);    try    {        // Get the configuration file. The file name has        // this format appname.exe.config.        System.Configuration.Configuration config =          ConfigurationManager.OpenExeConfiguration(exePath);但是ConfigurationManager.OpenExeConfiguration(exePath)拋出異常:An error occurred while loading the configuration file: The 'exePath' parameter is not valid.Parameter name: exePath配置文件AnotherApp.exe.config 存在于文件夾中Environment.CurrentDirectory。我也嘗試將其更改為Path.Combine(@"D:\", applicationName);,但出現(xiàn)相同的異常。如果我在這里添加exe.config, 而不是.exe, 在名稱的末尾applicationName += ".exe";,它似乎打開(kāi)了一些東西:config.FilePathis D:\AnotherApp.exe.config.config。但是config對(duì)象是空的。它沒(méi)有填充任何屬性。我究竟做錯(cuò)了什么?
查看完整描述

1 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

在嘗試打開(kāi)之前AnotherApp.exe.config,ConfigurationManager.OpenExeConfiguration檢查AnotherApp.exe磁盤(pán)上是否存在。這是來(lái)源:


// ...

else {

    applicationUri = Path.GetFullPath(exePath);

    if (!FileUtil.FileExists(applicationUri, false))

        throw ExceptionUtil.ParameterInvalid("exePath");


    applicationFilename = applicationUri;

}


// Fallback if we haven't set the app config file path yet.

if (_applicationConfigUri == null) {

    _applicationConfigUri = applicationUri + ConfigExtension;

}

如您所見(jiàn),exePath最終被傳遞到FileUtils.FileExists,最終檢查是否exePath代表磁盤(pán)上的文件。在你的情況,這是AnotherApp.exe,這并沒(méi)有存在。該throw ExceptionUtil.ParameterInvalid("exePath");語(yǔ)句是您的錯(cuò)誤的來(lái)源。


在我上面包含的源代碼中,您可以看到_applicationConfigUri設(shè)置為AnotherApp.exe.config(它是絕對(duì)路徑,但為了簡(jiǎn)單起見(jiàn),我使用了相對(duì)路徑)。當(dāng)您將 設(shè)置exePath為 時(shí)AnotherApp.exe.config,代碼最終會(huì)檢查AnotherApp.exe.config它找到的(它認(rèn)為這是 exe 本身)是否存在。在此之后,_applicationConfigUri被設(shè)置為AnotherApp.exe.config.config它不會(huì)不存在,但配置系統(tǒng)不在這種情況下錯(cuò)誤輸出(而不是返回一個(gè)空的配置對(duì)象)。

看來(lái)解決這個(gè)問(wèn)題可能有兩種選擇:

  1. 包括AnotherApp.exe在旁邊AnotherApp.exe.config。

  2. 使用ConfigurationManager.OpenMappedExeConfiguration,它允許您提供自己ExeConfigurationFileMap的指示配置系統(tǒng)如何定位.config文件。如果您需要這方面的幫助,請(qǐng)告訴我,我將提供一個(gè)示例,說(shuō)明這應(yīng)該如何工作。


查看完整回答
反對(duì) 回復(fù) 2021-11-07
  • 1 回答
  • 0 關(guān)注
  • 218 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)