当我在C#Application的输出目录中打开exe时,我的程序运行正常但是当我将exe和exe.config文件复制到Desktop并运行它时,程序在中间停止。
1-我正在使用背景工作者。
2-我正在从表单构造函数中的 InitializeComponent();
之后的appconfig中读取一个字符串不允许使用3-Cross Thread Processing。我已经检查过没有这样的例外。
4-我在参考文献中添加了许多dll。
它停止执行的位置显示在注释中的代码中。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
DrawImages(0, 222, 145);
// Line below executes and label is changed
//SetLabelText("Creating Movie Here");
CreateMovieFromImages();
.
.
.
}
CreateMovieFromImages()的代码是
private void CreateMovieFromImages()
{
//Line below this point never execute and no message box displays nor any label is changed.
MessageBox.Show("OK");
try
{
SetLabelText("Creating Movie");
for (int i = 0; i < 50; i++)
{
ImagesUrls.Add(outputDirectory+ "//Tempe" + i + ".bmp");
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
int width = 1254;
int height = 1000;
var framRate = 5;
try
{
using (var vFWriter = new VideoFileWriter())
{
vFWriter.Open(outputDirectory + "//TemperaryVideo.wmv", width, height, framRate, VideoCodec.WMV2);
foreach (var i in ImagesUrls)
{
Bitmap bmp = new Bitmap(i);
SetLabelText("Writing Image" + i + "\n");
var bmpReduced = ReduceBitmap(bmp, width, height);
vFWriter.WriteVideoFrame(bmpReduced);
}
vFWriter.Close();
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
我之前从未尝试过像这样运行exe,这是我的第一次。也许我还需要另外一个像这样运行exe的东西。 当它在VS Solution的输出目录中时,exe正常工作。
非常感谢您阅读我的所有问题。请帮助我:)
答案 0 :(得分:1)
复制整个输出目录,而不仅仅是可执行文件。它取决于您添加的其他.dll文件作为参考。