漏洞

漏洞:ArcGIS Pro SDK:当使用开箱即用的 ArcGIS Pro 管理配置工程时,调试程序不会启动,并且会抛出“System.IO.FileNotFoundException”

Last Published: April 25, 2020

描述

此漏洞引起两个问题。 当尝试使用 ArcGIS Pro 2.0 SDK 管理配置工程模板在 Visual Studio 中创建一个新工程时:

  • 调试程序不会启动,并且
  • 在配置启动时抛出异常
重现问题的步骤
  1. 在 Visual Studio 中添加一个新工程。 选择 ArcGIS Pro 2.0 SDK 管理配置工程模板。
  2. 为新配置工程命名,其中包含连字符,例如:my-custom-configuration.proConfigX
  3. 单击 Visual Studio 中的“开始”启动调试程序。
新的自定义配置不会启动,ArcGIS Pro 将以默认模式启动。
一旦启动问题修复完毕,配置将启动,但是会从坏包 Uri 中抛出“System.IO.FileNotFoundException”。

原因

Visual Studio 调试程序使用错误的命令行启动配置。 例如,如果新配置命名为“my-custom-configuration.proConfigX”,则为 Visual Studio 生成的命令行为“/config:my_custom_configuration”。 这是错误名称。 连字符已通过模板更改为下划线。
User-added image

同样,该模板生成的图标属性在程序集名称的 Uri 包中也有下划线。 这是错误的,下划线应该是连字符。

/// 
/// 替换  ArcGIS Pro 主页 窗口 图标。
/// 
protected override ImageSource Icon
{
   get
   {
       return new BitmapImage(new Uri(@"pack://application:,,,/my_custom_configuration;component/Images/favicon.ico"));
   }
 }

解决办法

要修复此问题,请执行下列步骤:

修改 Visual Studio 调试程序使用的命令行参数

  1. 在 Visual Studio 的解决方案资源管理器中,右键单击配置工程节点以访问快捷菜单。
  2. 单击属性,以打开属性设置对话框来进行自定义配置。
  3. 单击调试选项卡。
  4. 命令行参数编辑框中的下划线更改为连字符。
User-added image

修改在 ConfigurationManager 类的“图标”覆盖中指定的配置组件名称

  1. 在 Visual Studio 的解决方案资源管理器中,打开 ConfigurationManager1.cs 文件。
  2. 滚动至 ConfigurationManager1 类的“图标”属性覆盖。
  3. 对于将在“配置”中使用的图标,将其包 URI 字符串中组件名称所使用的下划线更改为连字符。
/// 
/// 替换  ArcGIS Pro 主页 窗口 图标。
/// 
protected override ImageSource Icon
   {
       get
       {
          return new BitmapImage(new Uri(@"pack://application:,,,/my-custom-configuration;component/Images/favicon.ico"));
       }
   }
  1. 在 Visual Studio 中重新构建“配置”工程并单击“开始”启动调试程序。 现在,ArcGIS Pro 将使用自定义配置启动。

文章 ID:000016289

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

发现关于本主题的更多内容