提问人:Matthijs Wessels 提问时间:10/3/2013 最后编辑:Matthijs Wessels 更新时间:9/19/2015 访问量:29931
构建我的云项目时出现“对象引用未设置为对象的实例”
"Object reference not set to an instance of an object" when building my cloud project
问:
当我使用一堆云项目构建解决方案时,我在输出中看到一条或多条“错误:对象引用未设置为对象的实例”消息。当我尝试运行其中一个云项目时,我收到弹出窗口“存在构建错误。是否要继续并运行上次成功的构建“,但”错误列表“中没有错误,输出中也存在相同的”错误:对象引用...“错误。
当我在我的云项目上单击包时,我收到一个消息框,其中包含“对象引用未设置为对象的实例”,当我右键单击云项目中“角色”下项目引用的 -> 属性时也是如此。
如果我使用命令行通过 msbuild 构建我的解决方案,我不会收到错误。
我尝试重新启动 Visual Studio 和我的 PC。我还尝试重新安装 Azure Tools (2.1),然后重新安装 Visual Studio。
我的同事现在在 Visual Studio 2013 RC 上遇到了同样的问题。
有人遇到过同样的问题吗?
我搜索过,但只找到了发布时遇到问题的人,解决方案是手动打包。
答:
尝试从云项目中删除角色,重新构建解决方案(如果有错误,请发布),然后将角色添加回云项目并重新构建。
评论
我想让大家知道我正在处理一个非常相似的情况,尽管使用的是不同版本的 Azure SDK (1.8)。我有许多云服务项目,我已经创建了无数次,然后突然无法再打开它们。尝试打开云服务配置 UI 会导致“对象未设置为引用”错误。我可以打开实际的XML文件,但不能打开GUI界面。
我多次尝试重新安装 1.8 SDK 和工具以及 VS 2012,但无济于事。我终于尝试安装最新的 SDK (2.2),现在我可以打开项目了。不确定在此之前我的系统发生了什么变化,但很高兴我终于能够再次打开我的项目!
当发布退出并且我开始收到“找不到对象”错误时,我遇到了类似的问题。VS2013(就我而言)报告“diagnostics.wadcfg”丢失,并将其异常地存储到另一个目录中。
通过进入项目文件 (.ccproj) 并从“Project\ItemGroup\Content Include ”\diagnostics.wadcfg“ 中删除错误条目并重新加载项目 - 一切都恢复了生机。
如果做不到这一点,请对照有问题的项目文件检查工作项目文件是否存在不一致。
评论
我在构建时也遇到了这个错误。解决方案中的项目将独立生成,但生成整个解决方案失败。
我了解到,通常这些类型的问题是由无效的 azure 角色或配置文件引起的。就我而言,事实证明,另一个分支上的 .cscfg 配置文件重命名与我的分支合并,但它没有重命名该文件 - 因此,我分支中的 .ccproj 文件错误地引用了新名称,而仅引用了解决方案中存在的旧文件名。使用新文件名手动编辑 .ccproj 后,我关闭/重新打开了解决方案,一切开始工作。
评论
在我的MVC项目中创建视图后,我在VS2013 express上遇到了类似的问题。
我用git恢复了项目,但这并没有解决问题。我还将该项目签出到电脑上的其他位置,但这并没有解决问题。我能够在笔记本电脑上签出该项目,而没有看到这个问题。
最后,我卸载了VS2013 express及其所有对应版本并重新安装。这解决了问题。
我有同样的问题。右键单击云服务项目,卸载该项目。再次重新加载它。
评论
我有这个错误(但没有使用云项目)。事实证明,Perforce(P4V)使用的字符编码是错误的,它应该是UTF-8。更改为 UTF-8 并重新同步代码后,Visual Studio 能够很好地找到并编译项目。
也许提示:在编译 VS2013 Dot42 项目时,我收到了相同的错误消息 - 意识到这是由于将某种内部类型(在我的情况下是枚举)的具体值分配给 INullable 变量引起的:
private SomeClass.SomeEnum? _var1;
...
_var1 = SomeClass.SomeEnum.XY; // causes compilation error
解决方案是,不使用 INullable:
private SomeClass.SomeEnum _var1;
评论
Nullable<T>
而不是 INullable
。这是否导致了编译错误,或者生成输出中是否存在“对象引用未设置为对象实例”消息?将不可为 null 的值分配给 .Nullable<T>
您不必删除角色并重新添加它们,这真的很烦人,因为您必须保留 cscfg 和 csdef 文件的内容。相反,请关闭 Visual Studio,删除解决方案的 .suo 文件,然后再次打开解决方案。
评论
这些答案都没有帮助我。我决定重新安装 Azure 工具,并注意到我安装了多个版本。我卸载了旧版本,重新安装了最新版本,这为我修复了它。
我在发布项目时也收到了相同的消息,尽管是在 Visual Studio 2010 中。
对我来说,从 bin 文件夹中删除所有文件都有效。
评论