2

我正在开发 Visual Studio 2005 中的 PocketPC 应用程序。该解决方案构建良好,然后突然中断。第一个错误是这样的(假设项目是 FooPDA):

“找不到位于 '%InstallDir%' 中的文件 'FooPDA.exe' 的源文件 'C:\FooPDA\obj\Release\FooPDA.exe',该文件可能不存在或被锁定。”

这个错误让我很困惑。它正在寻找它应该生成的文件。有人知道这里可能出了什么问题吗?


编辑:项目在版本控制之外构建得很好,我只需更改项目上的图标,它就开始抛出这个神秘的错误。

4

4 回答 4

11

在错误消息中看到 %InstallDir% 可能是一个线索。您的解决方案中有安装和部署项目吗?它是否在您的 FooPDA 项目之前构建?在obj中看到它也很可疑。


OP 编辑​​:你在正确的轨道上,所以我会相信你的答案。事实证明,当您进行重建时,Visual Studio 2005 编译器非常愚蠢,因为它在遇到无法编译的项目时不会停止。它只是继续编译和抛出错误。

这个特定的解决方案包含三个项目。我们称它们为FooPDA、PDAComponents 和Setup。我更改了项目 FooPDA 上的图标,解决方案将不再编译。我所关注的错误与实际问题无关。我应该专注于我在进行初始构建时看到的错误,即:

CVTRES:致命错误 CVT1103:无法读取文件

我基本上把它搞砸了,并立即进行了重建。就在那时,我发布的错误出现在错误列表的顶部,我被它吸引住了。我不应该的。我最初发布的错误是由于 FooPDA 没有编译,所以 FooPDA.exe 在编译安装项目时不可用。更改图标时 FooPDA 无法编译的原因是我尝试添加的 .ico 文件包含不兼容的图标大小和/或颜色深度. 显然紧凑框架(或目标平台,PocketPC 2003?)只了解其中的某些内容。我试图添加的 .ico 文件中嵌入了各种尺寸和颜色深度(一直到 256x256 @32 位)。我查看了最初存在的 .ico 文件,它只有两个 48x48 图标。一个 24 位颜色和一个 8 位。我在图标编辑器中打开了我的新 .ico 文件,并对其进行了修改,使其包含与原始文件相同的大小和颜色深度,并且一切都再次与世界保持一致。解决方案现在使用新图标编译,没问题。

On the one hand, I feel kind of foolish for not figuring this out (I finally asked a coworker who had encountered this before). On the other hand, what the f**k does "CVTRES: fatal error CVT1103: cannot read file" tell me? Nothing! What's wrong with "Error: incompatible icon"?

于 2008-11-15T17:36:51.327 回答
0

有时这发生在我的类库等中。如果解决方案没有正确构建,它永远不会到达生成 .exe 文件的地步。

您可以在不运行项目的情况下进行编译,还是在尝试编译时也会遇到相同的错误?

如果可以的话,我会尝试修复任何编译错误并重建。

于 2008-11-14T21:54:48.173 回答
0

关闭 Visual Studio。清洁您的解决方案。再次构建您的解决方案。

消息是否再次出现?

有时 VS 在编译时会锁定某些文件,它可能会从以前的构建中被锁定。

于 2008-11-14T21:58:43.203 回答
0

“找不到源文件 'C:\FooPDA\obj\Release\FooPDA.exe'

它正在尝试创建文件 C:\FooPDA\ bin \Release\FooPDA.exe。

C:\FooPDA\ obj \Release\FooPDA.exe 是一个文件(好吧,几乎是唯一一个),它用于创建它(主要是通过复制它)。

听起来好像由于其他原因,构建失败(语法错误等),但构建过程的其余部分没有得到消息,并继续进行。

于 2008-11-14T22:06:30.630 回答