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

问题描述 投票:0回答:6

按照以下步骤将 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

我认为这很愚蠢,对吧?

c# .net resources embedded-resource rc
6个回答
1
投票
没有重现,我没有看到任何错误。 自 VS2008(对于 Vista 可能是 VS2005 SP1)以来,C# 编译器已将 UAC 清单嵌入到程序集中。 如果您想修改它,请使用项目+添加新项目并选择“应用程序清单文件”项目模板。


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


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


0
投票
我最终使用 mt.exe 在构建后步骤中将清单嵌入到 .exe 文件中。但汉斯的回答已经足够接近了。所以我想“找不到文件”的谜团将永远无法解开......


0
投票
尝试使用

包括

“winuser.h”

而不是

包括

即将 '<>' 替换为双引号。


0
投票
.rc 文件应编码为 utf-8 格式,而不是 utf-8(BOM) 格式。 用notepad++打开文件并选择编码,将其更改为utf-8。

© www.soinside.com 2019 - 2024. All rights reserved.