2012-04-13 3 views
0

К сожалению, я не совсем нашел awnser я искал в разделе поиска или любых других кодирующих форумах, так что я оставлю свой вопрос здесь скачкообразной для некоторых закрытие.C# приложений, кажется, не работает на аналогичном компьютере помоему

Я разработал очень простое приложение C#, одно из проектов запуска Windows - лабиринт, который использует простую панель с надписями и простыми событиями мыши, чтобы запустить размещение позиции указателя назад для запуска.

я успешно опубликовал мое заявление, и он работает гладко на моем компьютере, и несколько других, но по какой-то странной причине он просто не загружается на ноутбуке моего друга.

Мы оба разделяем одну и ту же ОС (Windows 7), у нас обе версии x64, и структура кажется одинаковой, но даже несмотря на то, что процесс отображается в диспетчере задач, он просто не будет загружать, даже после успешного завершения установки.

Таким образом, программа не работать, но кажется, что он не будет загружен и не бросать какие-либо исключения или ошибки, которые будут проанализированы.

Поэтому мой вопрос в том, какие требования для моих программ полностью совместимы с другими компьютерами?

Я ценю внимание, я потратил много времени, работая над этим вопросом и не могу показаться, чтобы найти правильный awnser.

Я также будет отображать мой код формы для дальнейшего анализа:

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 

    namespace Labirinto 
    { 
     public partial class frmLabirinto : Form 
     { 
      // Toca um som sempre que o utilizador bater numa parede 
      System.Media.SoundPlayer startSoundPlayer = new System.Media.SoundPlayer(@"C:\Users\Ricardo Borges\Documents\Visual Studio 2010\Projects\Labirinto\Labirinto\Resources\doh.wav"); 
      // Toca um som sempre que o utilizador chegar ao final do labirinto 
      System.Media.SoundPlayer finishSoundPlayer = new System.Media.SoundPlayer(@"C:\Users\Ricardo Borges\Documents\Visual Studio 2010\Projects\Labirinto\Labirinto\Resources\tada.wav"); 


    public frmLabirinto() 
    { 
     InitializeComponent(); 
     MoveToStart(); 
    } 

    private void frmLabirinto_Load(object sender, EventArgs e) 
    { 

    } 

    /// <summary> 
    /// O método permite que o ponteiro do rato volte ao ponto inicial 
    /// </summary> 
    private void MoveToStart() 
    { 
     startSoundPlayer.Play(); //Toca o som de reinicio do jogo 
     Point startingPoint = panel1.Location; //ponto inicial 
     startingPoint.Offset(10, 10); //localizacao do ponto inicial 
     Cursor.Position = PointToScreen(startingPoint); //coloca o cursor no local inicial 
    } 

    private void finishLabel_MouseEnter(object sender, EventArgs e) 
    { 
     finishSoundPlayer.Play(); //Toca o som de fim de jogo 
     // Congratula o utilizador através de uma mensagem no ecrã 
     MessageBox.Show("Parabéns, encontrou a saída do labirinto"); 
     Close(); 
    } 

    private void wall_MouseEnter(object sender, EventArgs e) 
    { 
     MoveToStart(); //recoloca o ponteiro no ponto inicial ao embater numa parede 
    } 


} 

}

+3

Как могут быть использованы значения startSoundPlayer и finishSoundPlayer.убедитесь, что файлы присутствуют в системе друзей Ур. –

+1

@Parv: +1. Я даже не проверял код! –

+0

Ну, если программа скомпилирована в exe, это строго необходимо? И как мне добавить ссылку более правильно? – RBorges77

ответ

0

Вы пробовали с помощью Fusion Log viewer диагностировать любые ошибки сборки нагрузки?

Using Fusion Log Viewer to Debug Obscure Loader Errors

Если это не проблема, добавить код протоколирования приложения и проверить код для любой попытки/улове блоков, которые являются «глотания» ошибки.

1

У меня есть ощущение, что трудно закодированные значения, используемые при инициализации обоих объектов SoundPlayer вызвавшего ошибку. В качестве примера, что, если на машине, на которой запущено приложение, нет пользователя под названием «Ricardo Borges»?

System.Media.SoundPlayer startSoundPlayer = new System.Media.SoundPlayer(@"C:\Users\Ricardo Borges\Documents\Visual Studio 2010\Projects\Labirinto\Labirinto\Resources\doh.wav"); 
System.Media.SoundPlayer finishSoundPlayer = new System.Media.SoundPlayer(@"C:\Users\Ricardo Borges\Documents\Visual Studio 2010\Projects\Labirinto\Labirinto\Resources\tada.wav"); 

Based on the MSDN documentation для объекта SoundPlayer ", если путь или URL не является действительным, то SoundPlayer по-прежнему будет построен, но последующие вызовы нагрузки или играть метод подведет.

В первой строке внутри функции MoveToStart имеет следующую строку:

startSoundPlayer.Play(); 

Возвращаясь к MSDN для SoundPlayer.Play метода он может бросить один из трех различных исключений в зависимости от причины ошибки - The FileNotFoundException кажется вероятным преступником.

Можете ли вы подтвердить, что на заданном компьютере существуют как указанные местоположения, так и фактические файлы?

+0

Нет, но что меня пугает, так это то, что тот же сборщик работал на других машинах, у которых не было бы одинакового пути. Но я понимаю все ваши вопросы, и я ценю усилия. Как я могу фактически заменить эту ссылку, чтобы она продолжалась с остальными файлами, необходимыми для проекта, когда они публикуются/создаются? – RBorges77

+0

@ vuk77 Вам необходимо добавить в приложение некоторые регистрационные данные (System.Diagnostics), в частности, в области загрузки и инициализации данных. Если вы можете зафиксировать ошибку, это поможет нам сузить причину. –

 Смежные вопросы

  • Нет связанных вопросов^_^