尝试编译RC文件时“找不到文件”(可能是愚蠢的错误)

时间:2010-12-14 10:58:16

标签: c# .net resources embedded-resource rc

关注these steps,将UAC清单添加到作为资源嵌入的C#项目中。

第1步工作正常,我在项目中创建RC文件,如所描述的简单文本文件。

#include <winuser.h>
#define IDR_MANIFEST 1 // 2 for a DLL

IDR_MANIFEST RT_MANIFEST MOVEABLE PURE
{
 "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">
   <asmv3:trustInfo xmlns:asmv3=""urn:schemas-microsoft-com:asm.v3"">
     <asmv3:security>
       <asmv3:requestedPrivileges>
         <asmv3:requestedExecutionLevel
           level=""asInvoker""
           uiAccess=""false"" />
       </asmv3:requestedPrivileges>
     </asmv3:security>
   </asmv3:trustInfo>
  </assembly>"
}

然后使用Visual Studio命令提示符,我在步骤2得到以下输出:

  c:\myproject>rc MyResourceFile.rc
  Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
  Copyright (C) Microsoft Corporation.  All rights reserved.


  ConfigurationManager.rc(4) : error RC2135 : file not found: 1

我认为这是非常愚蠢的,对吧?

5 个答案:

答案 0 :(得分:1)

没有复制品,我没有看到任何错误。自VS2008(可能是VS2005 SP1 for Vista)以来,C#编译器已将UAC清单嵌入到程序集中。如果要修改它,请使用Project + Add New Item并选择“Application Manifest File”项目模板。

答案 1 :(得分:0)

正如Hans Passant所说,从VS 2008开始,您可以直接将清单文件添加到项目中。然后在项目属性下,选择“应用程序”选项卡,从ComboBox“Manifest:”中选择清单文件。

答案 2 :(得分:0)

我最终使用mt.exe在后期构建步骤中将清单嵌入到.exe文件中。但汉斯的回答非常接近。所以我想“未找到文件”的谜团仍未解决......

答案 3 :(得分:0)

尝试使用

包括“winuser.h”

而不是

包括&lt; winuser.h&gt;

即。替换'&lt;&gt;'双qoutes。

答案 4 :(得分:0)

确保rc文件是UTF-8编码的。我试图编译ANSI或UTF-8 BOM编码文件,我收到此错误消息。