Как отобразить файл chm в приложении C# winforms

Я добавил.chm файл в корень моего приложения. когда я получаю файл, используя приведенный ниже код, он ссылается на путь к bin/release/somehting.chm

System.Windows.Forms.Help.ShowHelp(this, Application.StartupPath+"\\"+"somehting.chm");

Я хочу получить путь относительно места установки приложения. пожалуйста помоги.

добавленный в корневой каталог файл chm не загружается после развертывания приложения. его даже не загружается при отладке в visual studio и не выдает никаких ошибок.

введите описание изображения здесь

3 ответа

Решение

Как я вижу первый фрагмент кода из вашего вопроса Help.ShowHelp не так уж и плохо Иногда я использую соответствующий код ниже. Возможны многие решения... Пожалуйста, обратите внимание, что опечатки, например, somehting.chm, вызывают помехи в фрагментах кода

private const string sHTMLHelpFileName = "CHM-example.chm";
...

private void button1_Click(object sender, EventArgs e) {
  System.Windows.Forms.Help.ShowHelp(this, Application.StartupPath + @"\" + sHTMLHelpFileName);
  }

Поэтому, пожалуйста, откройте Visual Studio - Solution Explorer и проверьте свойства вашего файла CHM. Перейдите в раскрывающийся список, показанный на снимке ниже, и установите "Всегда копировать" (здесь только немецкий). Начните свой проект в Debug режим и проверьте папку вывода bin/debug. Сделать то же самое для Release режим и выходная папка. CHM должен находиться там, и я надеюсь, что ваш звонок в CHM работает.

введите описание изображения здесь

Тебе нужно:

String exeDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

Так:

String HelpFilepath = "file://" + Path.Combine(exeDirectory , "somehting.chm");
Help.ShowHelp(this, path);

Ответ из аналогичной темы:

// get full path to your startup EXE
string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;

// get directory of your EXE file
string exeDir = Path.GetDirectoryName(exeFile);

// and open Help
System.Windows.Forms.Help.ShowHelp(this, exeDir+"\\"+"somehting.chm");
Другие вопросы по тегам