Sınamada bir programım var - sadece birkaç masaüstünde çalışıyor - bazen Windows başlangıçta çok garip davranıyor.C# Windows üzerinde çalışan program Garip bir şekilde davranıyor Başlangıç
programı bu başlar:
public frmClient()
{
_version = ApplicationDeployment.IsNetworkDeployed ? ApplicationDeployment.CurrentDeployment.CurrentVersion : _version;
_nicText = string.Format("My Program ({0})", _version.ToString());
Logger.LogToFile(string.Format("Startup - Build: {0}, Major: {1}, MajorRevision: {2}, Minor: {3}, MinorRevision: {4}, Revision {5}",
_version.Build,
_version.Major,
_version.MajorRevision,
_version.Minor,
_version.MinorRevision,
_version.Revision));
InitializeComponent();
}
formu aslında sistem tepsi minimize başlar ve Yük aşağıdaki gibi Bildirim İkon ipucunu ayarlamak için _nicText kullanır:
private void frmClient_Load(object sender, EventArgs e)
{
try
{
Logger.LogToFile("frmClient.frmClient_Load");
nicMain.Text = _nicText + " - NOT CONNECTED";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public static class Logger
{
public static void LogToFile(string LogMessage)
{
StreamWriter log;
if (!File.Exists("logfile.txt"))
{
log = new StreamWriter("logfile.txt");
}
else
{
log = File.AppendText("logfile.txt");
}
log.WriteLine(DateTime.Now.ToString("yyyyMMddHHmmss") + " - " + LogMessage);
log.Close();
}
}
Ben programı lo çalıştırırsanız şu şekildedir:
Kaydedici sınıftır cally, sürüm bilgisi için (0.0) alıyorum, aksi halde tam bir sürüm edinin (1.0.0.31 şu anda)
Ancak, başlangıçta bazen kullanıcı sürümüne (0.0) sahip olacağım durumlarda günlük dosyasına yazılmadı.
Şu anki tek tahminim, uygulamanın Windows'a hazır olmadan başlamasıdır (sadece kör bir tahmin). Bu olur mu? Eğer öyleyse, Windows hazır olana kadar gecikmek için herhangi bir yolu var mı? Başka bir şey mi eksik?
Buradaki cevap hiç yardımcı değil mi? http://stackoverflow.com/questions/5332544/returning-clickonce-version-doesnt-work-when-launching-application-on-startup-f – Andy
Kasten gösterilen (0, 0) çok kullanışlı değildir. Dolarlar için bazı kullanıcılar, exe'yi ağ konumundan kopyalarken daha iyi çalıştıklarını anladılar. Eksik günlük dosyası girişleri, eski bir sürümü veya yutma istisnalarını kopyalayarak açıklanmaya eğilimlidir. –
Hatalı dizine baktığınız için günlük dosyasına hiçbir şey yazılmadığından şüpheleniyorum. (Günlük dosya adınız bir yol içermez, bu nedenle geçerli dizinin ne olduğu olursa olsun oluşturulur.) –