Xap包装失败了。你调用的对象是空的

时间:2012-01-29 16:51:19

标签: visual-studio silverlight windows-phone-7 windows-phone-7.1 xap

当我尝试构建Windows Phone应用程序时,我的电脑上收到此错误消息:

Xap packaging failed. Object reference not set to an instance of an object

我正在使用Dropbox。在我的笔记本电脑上,它工作得很好,我可以调试等...但是在我的电脑上,我不能。

我尝试过很多东西,比如:

  • 删除 obj / Debug 文件夹
  • 检查解决方案资源管理器
  • 上缺少的文件

到目前为止,没有任何帮助。

知道如何解决这个问题吗?

11 个答案:

答案 0 :(得分:75)

您应该在项目的每个文件夹中检查丢失的文件或错误的引用。

如果构建操作属性设置为Content或类似,则只能使用一个丢失的图像来解决此问题...

enter image description here

检查您的文件,然后重建您的项目!

答案 1 :(得分:22)

如果从磁盘本身删除文件,而不是通过Visual Studio从解决方案中删除,则会发生这种情况。通过Visual Studio删除文件(它应标有一点黄色危险图标)和重建。

通过http://blog.jayway.com/2011/06/03/wp7-build-error-xap-packaging-failed/向Andreas Hammar表示感谢 - 他的解决方案对我有用。

答案 2 :(得分:6)

我正在添加此回复,因为虽然上面的一些答案中简要介绍了应用程序图标的问题,但我想给出确切的步骤,因为它刚好发生在我身上。我收到此错误,然后找到了这个网页:

Xap Packaging Error

事实证明,由于重命名,我的App图标文件名错误。我双击属性文件夹中的 WMAppManifest.xml ,打开该文件的编辑器。我只是使用按钮更新应用程序图标,重新找到文件并选中它,重建项目后错误就消失了。

答案 3 :(得分:5)

问题在于您的应用程序中的启动对象。我多次遇到过这个错误。

当我更改类/命名空间Application类的名称时,通常会发生这种情况。或者甚至可能与您的保管箱位置发生冲突。

解决此问题。

  1. 右键单击主项目或Alt + Enter
  2. 转到silverlight选项卡并设置启动对象

答案 4 :(得分:2)

请尝试以下操作:

  • 关闭Visual Studio
  • 将所有文件下载到您的计算机
  • 完全删除Bin和obj文件夹。
  • 打开.sln
  • 重建

如果失败,请展开解决方案资源管理器中的引用,并确保找到所有的dll。如果一个DLL有一个黄色感叹号,表示没有找到它。我认为你的一个参考文献被设置为笔记本电脑上的绝对路径,并且在你的电脑上没有。

答案 5 :(得分:2)

如果有人遇到这个帖子但仍然遇到XAP打包失败的问题,并且VS2012无法找到该文件,请检查文件名中的空格。

我遇到的问题是我的瓷砖是“tilename 99.png”并且它一直给我XAP包装失败的消息。所以我最终将文件名改为“tilename_99.png”并且它有效。

希望这有助于处于同样困境的人。

答案 6 :(得分:1)

在我的情况下,我不小心将Background.png移动到资源文件夹。把它移回去了,它有效!

答案 7 :(得分:0)

就我而言,即使在尝试了上述所有方法之后,这个错误也没有消失。实际上我已将ApplicationIcon.png重命名为“xyz.png”。并且还原这个,解决了这个问题。

答案 8 :(得分:0)

另一种可能性是项目/选项/应用程序对话框中的图像路径错误(图标,bg图像等)。

答案 9 :(得分:0)

我有这个错误信息,经过一些挫折后我在obj文件夹中查看,是不是解决方案的一部分(但是视觉工作室需要它)但我有一些冲突文件与dropbox。我删除了obj文件夹rebuild,visual studio重新创建了文件夹及其内容并解决了问题。

答案 10 :(得分:0)

啊,终于找到了我的问题。

我正在使用Visual Studio 2012,它并不总是指出“丢失”文件并使其更难修复。

MY SHORT SOLUTION

重新链接主项目中的“链接”配置文件。它是链接的文件,因为原始文件保留在引用的程序集中,而不是在当前程序集中。该文件未标记为黄色,因此不明显是问题,但是当我双击它时,它无法打开,所以我知道这是问题文件。

Silverlight应用程序本身有一个名为“ServiceReferences.ClientConfig”的“链接”文件,其中包含引用项目进行Web服务调用所需的信息。

因此主项目本身没有Web服务引用,但它引用了一个项目,这就是为什么它链接了“ServiceReferences.ClientConfig”文件。

我的长期解决方案

继续重建主项目文件,注释掉,逐个项目,逐个文件排除,直到您再次构建主项目为止。此时应该清楚(呃)解决方案的哪个部分导致问题。