【问题标题】:Missing Manifest exception Visual Studio 2010 project converted from 2003, 2008缺少清单异常 Visual Studio 2010 项目从 2003 年、2008 年转换
【发布时间】:2012-10-22 04:18:31
【问题描述】:

我有一个最初使用 Visual Studio 2003 创建的 Win Forms C++ 解决方案,转换为 2008(成功),现在我正尝试将其转换为 Visual Studio 2010。

解决方案构建时没有错误,然后在运行时尝试从表单资源加载图像列表时出现缺少清单异常。异常发生在以下代码行:

this->m_imageList->ImageStream = (__try_cast<System::Windows::Forms::ImageListStreamer *  >(resources->GetObject(S"m_imageList.ImageStream")));

我想我发现了问题,如果我使用 2008 程序集的 ildasm 检查清单,我会看到以下表格资源:

.mresource public SDTP.SDTPDataMonitorForm.resources
{
  // Offset: 0x00000000 Length: 0x00006DB0
}

2010 程序集的清单如下所示:

.mresource public SDTPnet.SDTPDataMonitorForm.resources
{
  // Offset: 0x00000000 Length: 0x00004F57
}
.mresource public '..\\temp\\Debug\\SDTP.SDTPDataMonitorForm.resources' as '..$temp$Debug$SDTP.SDTPDataMonitorForm.resources'
{
  // Offset: 0x00008E80 Length: 0x00004F57
}

我确定它找不到它,因为第一个实例中有额外的“net”文本,而第二个实例中有额外的 ..$temp$Debug。

最后,我的问题是:我应该在项目设置中的哪个位置解决这个问题? ..\temp\Debug 是项目路径的一部分......如果我将“中间目录”设置更改为 $(Configuration) 我现在得到:

.mresource public 'Debug\\SDTP.SDTPDataMonitorForm.resources' as Debug$SDTP.SDTPDataMonitorForm.resources
{
  // Offset: 0x00008E80 Length: 0x00004F57
}

在仍然产生异常的清单文件中。

感谢您的帮助...

【问题讨论】:

  • 想通了:右键单击 .resx 文件并选择属性并编辑“资源逻辑名称”

标签: visual-studio-2010 visual-c++ unmanagedresources


【解决方案1】:

右键单击.resx文件并选择属性并编辑“资源逻辑名称”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多