[英]“This application could not be started.” Only when the file is in system32 directory
我寫了一個從互聯網上下載文件的小軟件,僅此而已。 我的意圖是通過命令行使用它......它工作得很好,但是當我將它放在 C:\\Windows\\System32\\ 中以從我想要的任何地方實際使用它時,它現在不起作用......它沒有' t 拋出異常...它只是向我顯示此消息框 - http://i.imgur.com/a7rlMgo.png ,如果我單擊“是”,它會在瀏覽器中打開此頁面 - http://support.microsoft。 com/kb/2715633/en-us
我應該怎么做才能讓它工作?
代碼是否有任何用處..:
private const string InsufficientParametersMessage = "Insufficient Parameters...";
private static string[] _arguments;
static void Main(string[] args)
{
_arguments = args;
TakeCommand();
Environment.Exit(0);
}
private static void TakeCommand()
{
if (_arguments.Length < 1)
{
Console.WriteLine(InsufficientParametersMessage);
}
else if (_arguments.Length == 1)
{
DownloadFile(_arguments[0]);
}
else if (_arguments.Length > 1)
{
DownloadFile(_arguments[0], _arguments[1]);
}
}
private static void DownloadFile(string url)
{
DownloadFile(url, Path.GetFileName(url));
}
private static void DownloadFile(string url, string localFileName)
{
WebClient client = new WebClient();
if (File.Exists(localFileName))
{
File.Delete(localFileName);
}
try
{
client.DownloadFile(url, localFileName);
Console.WriteLine("Done...");
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
簡短回答:取消選中“首選 32 位”。
長答案:(不是 100% 肯定,但在這里)
假設您有一台 64 位機器,請記住 System32 是一個為 64 位應用程序保留的文件夾,雖然看起來很奇怪,但 SysWOW64 包含 32 位 dll,並為 32 位應用程序保留。 通常,訪問 System32 的 32 位應用程序將通過文件系統重定向器到達 SysWOW64 文件夾。 更多信息在這里。
但是,當您的應用程序(作為 32 位進程運行)在 System32 本身中運行時,重定向器可能不會執行任何操作,因為它認為不需要重定向,這就是您的應用程序在 System32 之外運行的原因,但是不在里面。
因此,要解決此問題,請取消選中 Prefer 32-bit 以便它嘗試針對 64 位平台,...或者更好的是,將應用程序放在其他位置並將應用程序目錄添加到您的環境路徑變量中。 這樣您仍然可以在任何地方訪問您的應用程序 .exe,並且它不會污染您的 System32 文件夾,該文件夾無論如何只能用於 Windows 文件。
此答案可能不適用於 OP 的問題(無論如何都已解決),但可能適用於因搜索“無法啟動此應用程序”和 System32 而最終到達此處的其他人。在我的情況下,我編寫了一個屏幕保護程序C# 程序必須運行 32 位,解決方案是將其安裝在 Windows 目錄中,而不是 Windows\\System32。然后它在 32 位和 64 位系統上都可以正常工作。
如果您將 32 位 exe 放在System32和SysWOW64文件夾中。 它工作得很好。 不是一個,不是另一個,而是兩個文件夾。
這聽起來可能很奇怪,但請嘗試一下。 如果您將相同的 exe 放在兩個文件夾中,它將在不進行任何修改的情況下啟動。
我剛剛將 NuGet.exe 從 c:\\Windows\\System32 移動到 c:\\Windows 並且它可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.