公共语言运行时使用ClickOnce检测到无效程序

时间:2013-05-21 08:58:56

标签: c# .net .net-4.0 msbuild csc

我的InvalidProgram异常带有消息

  

公共语言运行时检测到无效程序

这发生在我们在过去3个月内未发生变化的应用程序中。 唯一的变化是我们更改了构建服务器(重新安装)。 服务器正在运行Windows 8并且上面有Windows SDK 7.1。 我们使用ClickOnce打包应用程序。

这个异常发生在一个非常特定的方法调用中,在调用了与程序集相同的类的方法之后,所以我认为它排除了程序集加载问题。

我无法找到导致调试此问题的位置。我认为它与我在构建服务器上使用的工具版本有关,例如MSBuild,CSC,mage.exe等。

我发现有人说当我有很长的方法名称时可能会发生这个错误,但这似乎不适用于此,因为我没有很长的方法名称而且我自己也没有生成代码。

该应用程序使用.NET 4.0

更新1 这肯定是编译工具(我认为的版本)或ClickOnce打包工具的问题,因为当我在我的机器上编译和运行应用程序时它工作,当我在我的机器上安装打包的应用程序时它显示上面的例外。

1 个答案:

答案 0 :(得分:1)

将此参数添加到编译器:/nowin32manifest