【问题标题】:Unable to run wpf Application after rebuilding重建后无法运行 wpf 应用程序
【发布时间】:2016-03-01 18:10:48
【问题描述】:

我收到了一个用 Visual Studio 2013 编写的 wpf 应用程序,我需要运行它..

当我构建它时,它运行良好,但到达了调用数据库的位置。不幸的是,数据库连接字符串是硬编码的。如果我在代码中更改它,应用程序会自行重建,然后当我在它到达数据库之前运行时,它会给出以下运行时错误。

 Private Shared Sub RunInDebugMode()
    Dim bootstrapper As UnityBootstrapper = New Bootstrapper()
    bootstrapper.Run()
End Sub

Microsoft.Practices.Prism.dll 中出现“Microsoft.Practices.Prism.Modularity.ModuleInitializeException”类型的未处理异常

附加信息:初始化模块“Main”时发生异常。

  • 异常消息是:尝试获取 ModuleInit 类型的实例时发生激活错误,键“”

    查看异常的 InnerException 属性以获取更多信息。如果发生异常

    在 DI 容器中创建对象时,可以通过 exception.GetRootException() 来帮助定位

    问题的根本原因。

bootstrapper.Run()

如果我无法重建代码,我该如何对其进行更改。 它在客户端的机器上工作。在我重建之前在我的机器上工作。

如果我处于调试模式并跳过bootstrapper.Run() 行,则屏幕不会呈现,因此无济于事。有没有办法可以替换那一行讨厌的代码而不使用它。它似乎是 Unity 的一部分,但它是代码的核心,我不知道如何绕过它,所以我只能运行应用程序。

这里是对 Unity 的项目引用

注意我最初得到的错误

错误 35 该项目当前包含对多个 Microsoft.Practices.Unity 版本的引用、对版本 1.2.0.0 的直接引用和间接引用(通过“Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Container”)到版本 2.1.505.0。将直接引用更改为使用 Microsoft.Practices.Unity 版本 2.1.505.0(或更高版本)。 C:\MyProject\Shell\Bootstrapper.vb 24 33

然后我将引用更改为 2.1.505.0,因此我原来的运行时错误。意思是 Prism 不向后兼容。我也尝试过 Microsoft.Practices.Unity.dll 的 v4,但我得到与 v2 相同的错误。

我无意部署此站点。我只需要更改硬编码的连接字符串并构建它并运行它来测试它是如何工作的。 然而 Prism 垄断太多以排除它并拒绝我尝试的任何工作。

我的主要项目仅包含以下内容:

有没有一种方法可以绕过 prism 并跳过我的主项目,直接在类库项目中调用 xaml 文件,而不是通过创建一个新项目?

【问题讨论】:

    标签: wpf visual-studio visual-studio-2013 prism


    【解决方案1】:

    这是一个 Prism 应用程序,您无法绕过 Bootstrapper.Run,​​因为它是应用程序的核心。显然你继承了一个你不熟悉的应用程序,因此帮助你找到问题将更加困难。您列出的异常使我相信您在加载应用程序的模块时遇到问题。查看引导程序类并查看 CreateModuleCatalog 并查看它使用的是哪种目录。如果使用配置文件(.xaml 或 .config)完成,则在查找目录正在查找的程序集时可能会出现问题。确保将模块组件复制到正确的位置。您也可以尝试重建解决方案,而不仅仅是安装项目。如果模块程序集具有将程序集复制到目录的后期构建过程,则重新构建解决方案将正确复制模块并且应用程序将按预期运行。

    如果没有更多信息,真的很难说。

    【讨论】:

    • 感谢您的回答。我添加了更多信息,提出了更清晰的问题
    • 您是否也升级了模块中的所有引用?不只是外壳?例外是告诉您引用了多个版本的 Unity。我将首先删除所有项目中的所有 Unity 引用,然后一一重新添加。做一个干净,然后重建。
    • 编译器表现异常。它拒绝编译,直到我在我的主项目中修复它。然后我的程序运行并且没有抛出编译错误,尽管我的所有其他类库中存在完全相同的问题。因此,我原来的问题。当我将其他类库中的所有这些引用与主项目相同时,我的问题就解决了。编译器的行为让我失望了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    相关资源
    最近更新 更多