为什么我在运行程序时得到InvalidDeploymentException异常?
本文关键字:InvalidDeploymentException 异常 运行 程序 为什么 | 更新日期: 2023-09-27 18:16:31
我找不到我在哪里使用记录器。当然不是在Form1构造函数中。所以我不明白为什么它会到达这个模块,为什么它会抛出这个异常。
模块代码:
/*----------------------------------------------------------------
* Module Name : Logger
* Description : A logger
* Author : Danny
* Date : 10/02/2010
* Revision : 1.00
* --------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Drawing;
using System.Threading;
/*
* Introduction :
*
* This module is a logger. any module can use this
* module to log its actions.
*
*
* */
/*----------------------------------------
* P R I V A T E D E F I N I T I O N S
* ---------------------------------------*/
namespace DannyGeneral
{
class Logger
{
/*----------------------------------------
* P R I V A T E C O N S T A N T S
* ---------------------------------------*/
static string log_file_name = @"'logger.txt";
static string full_path_log_file_name;
static string path_log;
static Mutex mut;
/*----------------------------------------
* P R I V A T E V A R I A B L E S
* ---------------------------------------*/
/*---------------------------------
* P U B L I C M E T H O D S
* -------------------------------*/
/*----------------------------------------------------------
* Function : Logger
* Description : static Constructor
* Parameters : none
* Return : none
* --------------------------------------------------------*/
static Logger()
{
mut = new Mutex();
path_log = Path.GetDirectoryName(Application.LocalUserAppDataPath)+ @"'log";
if (!Directory.Exists(path_log))
{
Directory.CreateDirectory(path_log);
}
full_path_log_file_name = path_log + log_file_name;
}
/*----------------------------------------------------------
* Function : Write
* Description : writes a string to the log file
* This functions will add time and date and
* end of line chars to the string written to
* the file.
* Parameters : string to write to the file.
* Return : none
* --------------------------------------------------------*/
public static void Write(string str)
{
if (mut.WaitOne() == false)
{
return;
}
else
{
using (StreamWriter sw = new StreamWriter(full_path_log_file_name, true))
{
sw.Write(DateTime.Now.ToShortDateString() + "--" + DateTime.Now.ToShortTimeString() + " ==> " + str);
sw.WriteLine();
sw.Close();
}
}
mut.ReleaseMutex();
}
public static void exist()
{
if (!File.Exists(path_log + log_file_name))
{
StreamWriter sw = new StreamWriter(path_log + log_file_name);
sw.Write(DateTime.Now.ToShortDateString()+"--"+DateTime.Now.ToShortTimeString()+" ==> "+"First Time The Log File Was Created"+Environment.NewLine);
sw.WriteLine();
sw.Close();
}
}
public static void newEmptyLine()
{
StreamWriter sw = new StreamWriter(path_log + log_file_name,true);
sw.WriteLine();
sw.Close();
}
/*---------------------------------
* P R I V A T E M E T H O D S
* -------------------------------*/
}
}
异常行:
path_log = Path.GetDirectoryName(Application.LocalUserAppDataPath)+ @"'log";
StackTrace: at System.Deployment.Application.ApplicationDeployment.get_CurrentDeployment()
另一件事可能在程序运行后抛出异常后有一种方法可以找到程序中的什么/哪里被称为这个模块?
当我使用debug时,在
行上出现一个断点path_log = Path.GetDirectoryName(Application.LocalUserAppDataPath)+ @"'log";
并将鼠标放在:LocalUserAppDataPath上我看到路径:c:' users ' chocolate ' appdata ' local' Youtube_Manager'Youtube-Manager'1.0.0.0
但是为什么它要显示1.0.0.0的路径呢?应该只有:c:' users ' chocolate ' appdata ' local' Youtube_Manager'Youtube-Manager
不知道发生了什么
可以替换
Path.GetDirectoryName(Application.LocalUserAppDataPath)
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)