C#.NET应用程序在启动后立即崩溃

时间:2010-05-10 10:58:04

标签: c# .net deployment windows-installer version

我正在试验程序集和文件版本号。虽然我的程序在IDE中运行良好,但在创建安装文件并安装应用程序时发生InvalidDeploymentException崩溃。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

[AssemblyVersion]和[AssemblyFileVersion]属性扮演不同的角色。 [AssemblyVersion]仅对托管代码可见,对GAC很重要。每当在程序集的公共接口中进行重大更改时,您应该将此数字提高。

编译器使用/ win32res命令行选项在程序集中嵌入非托管资源。这包括VERSIONINFO resource,可由所有非托管代码读取,包括shell。它确定在资源管理器中右键单击程序集时看到的内容,并查看“详细信息”属性页。此处显示的“文件版本”值由[AssemblyFileVersion]属性设置。那里没有[AssemblyVersion]值,资源管理器(还)不知道如何阅读它。

由您决定如何使用此属性。崩溃表明在部署代码中进行了一些最小的健全性检查,从未尝试过自己弄错,看看会发生什么。然而,使它们相同会有很大的意义。

Microsoft以不同的方式使用[AssemblyFileVersion],它们会自动为每个构建增加它并将[AssemblyVersion]钉下来。这是一个好主意和我使用的策略。然而具有讽刺意味的是,自动版本增量功能完全向后工作,它只能自动增加[AssemblyVersion]。叹息。

答案 1 :(得分:0)

尝试使用fusion log viewer查看已部署的应用中未加载的内容。