将类型更改为 Windows 应用程序后应用程序无法正常工作

Posted

技术标签:

【中文标题】将类型更改为 Windows 应用程序后应用程序无法正常工作【英文标题】:application not work correctly after change type to windows application 【发布时间】:2014-04-13 05:19:09 【问题描述】:

我创建了一个 C# 控制台应用程序来将计算机中的某个文件上传到 Web 服务器。它工作正常。但我也想隐藏我的控制台应用程序。 然后我将我的应用程序类型从属性面板更改为 Windows 应用程序。现在我意识到它不能正常工作..它仍然可以完成所有期望上传部分的操作。当它是控制台类型时,它会正确上传过程并运行直到我点击输入因为我添加了 console.readline();到它。但是现在当我在 Visual Studio 中运行时,它会在成功上传之前自动停止运行。我不明白为什么..需要帮助

我的上传代码如下。

public static Boolean upload()

    Console.WriteLine("uploading");
    text_a("uplading");
    String file = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + 
        "\\micro_db\\zipper\\keys.zip";

    String url = "http://mysite/upload.php";

    try
    
        WebClient client = new WebClient();
        Uri uri = new Uri(url);

        client.UploadFileCompleted += new UploadFileCompletedEventHandler(UploadFileCallback2);

        // Specify a progress notification handler.
        //client.UploadProgressChanged += new UploadProgressChangedEventHandler(UploadProgressCallback);
        client.UploadFileAsync(uri, "POST", file);
        Console.WriteLine("File upload started.");
        text_a("file upload started");
        return true;
    
    catch(Exception e)
    
        Console.WriteLine(e);
        text_a(e.ToString());
        return false;

    

【问题讨论】:

【参考方案1】:

我建议创建三个项目:

第一个项目将是您的“服务”项目,它只是一个普通的类库,它公开一个类来执行 Upload() 方法。

第二个项目将是您的控制台应用程序。添加对您创建的第一个项目的引用,并从您的服务项目中创建该类的新实例。

第三个可以是 windows 项目。这也将参考服务项目。就像在控制台应用程序中一样新建课程。

这样,您只需右键单击所需项目并选择调试即可运行控制台应用程序或 Windows 应用程序。

您不能只是从控制台切换到 Windows 应用程序类型而不进行管道工作以使其工作。

【讨论】:

以上是关于将类型更改为 Windows 应用程序后应用程序无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

ListAdapter 在将数组类型更改为 int 后拒绝应用程序

如何在 C# 中以编程方式将 Windows 服务的启动类型更改为禁用

Uwp应用程序更改为蓝页。为什么?

NSMetadataQuery isUpdating 在可达性更改为无 Swift 4 后中断

将源文件类型更改为 Objective-C++ 后的链接器错误

使用 Windows 窗体应用程序时如何将鼠标光标更改为自定义光标?