重建后无法 运行 wpf 应用程序
Unable to run wpf Application after rebuilding
我得到了一个在 Visual Studio 2013 年编写的 wpf 应用程序,我需要 运行 它..
当我构建它时,它 运行 非常完美,但达到了它调用数据库的程度。不幸的是,数据库连接字符串是硬编码的。如果我在代码中更改它,应用程序会自行重建,然后当我 运行 在它到达数据库之前它会给出以下 运行 时间错误。
Private Shared Sub RunInDebugMode()
Dim bootstrapper As UnityBootstrapper = New Bootstrapper()
bootstrapper.Run()
End Sub
An unhandled exception of type 'Microsoft.Practices.Prism.Modularity.ModuleInitializeException' occurred in Microsoft.Practices.Prism.dll
Additional information: An exception occurred while initializing module 'Main'.
The exception message was: Activation error occurred while trying to get instance of type ModuleInit, key ""
Check the InnerException property of the exception for more information. If the exception occurred
while creating an object in a DI container, you can exception.GetRootException() to help locate the
root cause of the problem.
于 bootstrapper.Run()
如果无法重建代码,我该如何更改代码。
它在客户端的机器上工作。在我重建之前在我的机器上工作。
如果我处于调试模式并跳过 bootstrapper.Run()
行,屏幕不会呈现,所以它没有帮助。有没有一种方法可以替换那一行讨厌的代码而不使用它。它似乎是 Unity 的一部分,但它是代码的核心,我不知道如何绕过它,所以我只能 运行 应用程序。
这里是对 Unity 的项目引用
注意我最初得到的错误
Error 35 The project currently contains references to more than one version of Microsoft.Practices.Unity, a direct reference to version 1.2.0.0 and an indirect reference (through 'Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Container') to version 2.1.505.0. Change the direct reference to use version 2.1.505.0 (or higher) of Microsoft.Practices.Unity. C:\MyProject\Shell\Bootstrapper.vb 24 33
然后我将引用更改为 2.1.505.0,因此我原来的 运行time error.Meaning Prism 不向后兼容。我也试过 Microsoft.Practices.Unity.dll 的 v4,但我得到了与 v2.
相同的错误
我无意部署此网站。我只需要更改硬编码的连接字符串并构建它并 运行 它来测试它是如何工作的。
然而,Prism 垄断太多,无法排除它,无论我尝试什么,它都拒绝工作。
我的主要项目只包含以下内容:
有没有办法绕过 Prism 并跳过我的主项目,直接在 class 库项目中调用 xaml 文件,而不是通过创建一个新项目?
这是一个 Prism 应用程序,您不能绕过 Bootstrapper.Run,因为它是应用程序的核心。显然你继承了一个你不熟悉的应用程序,那么帮助你找到问题就更加困难了。您列出的异常使我相信您在加载应用程序模块时遇到问题。查看引导程序 class 并查看 CreateModuleCatalog 并查看它使用的目录类型。如果它是通过配置文件(.xaml 或 .config)完成的,那么在查找目录正在查找的程序集时可能会出现问题。确保模块程序集被复制到正确的位置。您还可以尝试重建解决方案,而不仅仅是安装项目。如果模块程序集具有 post 将程序集复制到目录的构建过程,则重建解决方案将正确复制模块,应用程序将按预期 运行。
没有更多信息真的很难说。
我得到了一个在 Visual Studio 2013 年编写的 wpf 应用程序,我需要 运行 它..
当我构建它时,它 运行 非常完美,但达到了它调用数据库的程度。不幸的是,数据库连接字符串是硬编码的。如果我在代码中更改它,应用程序会自行重建,然后当我 运行 在它到达数据库之前它会给出以下 运行 时间错误。
Private Shared Sub RunInDebugMode()
Dim bootstrapper As UnityBootstrapper = New Bootstrapper()
bootstrapper.Run()
End Sub
An unhandled exception of type 'Microsoft.Practices.Prism.Modularity.ModuleInitializeException' occurred in Microsoft.Practices.Prism.dll
Additional information: An exception occurred while initializing module 'Main'.
The exception message was: Activation error occurred while trying to get instance of type ModuleInit, key ""
Check the InnerException property of the exception for more information. If the exception occurred
while creating an object in a DI container, you can exception.GetRootException() to help locate the
root cause of the problem.
于 bootstrapper.Run()
如果无法重建代码,我该如何更改代码。 它在客户端的机器上工作。在我重建之前在我的机器上工作。
如果我处于调试模式并跳过 bootstrapper.Run()
行,屏幕不会呈现,所以它没有帮助。有没有一种方法可以替换那一行讨厌的代码而不使用它。它似乎是 Unity 的一部分,但它是代码的核心,我不知道如何绕过它,所以我只能 运行 应用程序。
这里是对 Unity 的项目引用
注意我最初得到的错误
Error 35 The project currently contains references to more than one version of Microsoft.Practices.Unity, a direct reference to version 1.2.0.0 and an indirect reference (through 'Microsoft.Practices.Prism.UnityExtensions.UnityBootstrapper.Container') to version 2.1.505.0. Change the direct reference to use version 2.1.505.0 (or higher) of Microsoft.Practices.Unity. C:\MyProject\Shell\Bootstrapper.vb 24 33
然后我将引用更改为 2.1.505.0,因此我原来的 运行time error.Meaning Prism 不向后兼容。我也试过 Microsoft.Practices.Unity.dll 的 v4,但我得到了与 v2.
相同的错误我无意部署此网站。我只需要更改硬编码的连接字符串并构建它并 运行 它来测试它是如何工作的。 然而,Prism 垄断太多,无法排除它,无论我尝试什么,它都拒绝工作。
我的主要项目只包含以下内容:
有没有办法绕过 Prism 并跳过我的主项目,直接在 class 库项目中调用 xaml 文件,而不是通过创建一个新项目?
这是一个 Prism 应用程序,您不能绕过 Bootstrapper.Run,因为它是应用程序的核心。显然你继承了一个你不熟悉的应用程序,那么帮助你找到问题就更加困难了。您列出的异常使我相信您在加载应用程序模块时遇到问题。查看引导程序 class 并查看 CreateModuleCatalog 并查看它使用的目录类型。如果它是通过配置文件(.xaml 或 .config)完成的,那么在查找目录正在查找的程序集时可能会出现问题。确保模块程序集被复制到正确的位置。您还可以尝试重建解决方案,而不仅仅是安装项目。如果模块程序集具有 post 将程序集复制到目录的构建过程,则重建解决方案将正确复制模块,应用程序将按预期 运行。
没有更多信息真的很难说。