【问题标题】:C# ClickOnce Deployment Mapping Back to My Desktop DriveC# ClickOnce 部署映射回我的桌面驱动器
【发布时间】:2017-09-08 16:17:21
【问题描述】:

我创建了一个 WinForms 应用程序,其中包含用于查找用户桌面并执行 3 个任务的代码: 1.创建文件夹 2. 读取 .csv 文件 3. 将一些数据输出到桌面的.csv文件中。

我正在使用下面的代码来查找用户的桌面

    string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

我使用 ClickOnce 部署将程序安装到我们的网络驱动器。该程序安装成功,但是每当有人尝试从他们的终端运行该程序时,他们都会收到一条错误消息,指出“目录名称无效”,并且它引用了我的桌面而不是用户的桌面。

我应该如何更改我的代码或部署方法以使其引用用户的桌面?

【问题讨论】:

  • 在下面查看我的答案。
  • 您能否准确说明“何时”引发此错误?您的问题涉及“有人尝试安装”,但您的错误消息引用了代码(这意味着在运行时抛出异常?)。请更新问题以明确这一点。
  • @Znaneswar 您的答案将不起作用,因为该程序正在引用一个不属于网络位置或其他用户的目录。如果文件路径位于 `\Users` 目录中,我希望它也会崩溃。
  • @Subbu - 为了清楚起见,我对其进行了编辑。您是正确的,异常是在运行时引发的。
  • 当你说它引用我的桌面时,你是指用于开发应用程序的电脑的桌面还是网络驱动器上的桌面?另外,(愚蠢但必须检查)网络驱动器是另一台机器上的实际驱动器,还是“您的”电脑上共享到网络的驱动器?

标签: c# deployment clickonce


【解决方案1】:

如果目录无效,请尝试创建它 试试这段代码

 string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
 string extension = ".log"; filePath += @"\Error Log\" + extension;
  if (!Directory.Exists(filePath)) { 
 Directory.CreateDirectory(filePath); 
 }

【讨论】:

    【解决方案2】:

    我对我的代码进行了以下更改,它可以根据需要运行:

    string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2017-10-03
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多