1

我正在编写一个 wpf 应用程序(EF、dot net 4、wix 3.6)。它编译得很好。我可以调试应用程序并且一切正常。我可以运行生成的可执行文件并且一切正常。我尝试将其与成功生成 .msi 文件的 Wix 打包,该文件将可执行文件复制到正确的位置。当我运行 msi-deployed .exe 时,出现上述错误。

我在这里检查了问题:在配置中找不到指定的命名连接,不打算与 EntityClient 提供程序一起使用,或者无效,并且在这里:在配置中找不到指定的命名连接,不打算与 EntityClient 提供程序一起使用,或者无效。第二个链接不是处理 web.config 的解决方案,我在 Windows 桌面环境中。

第一个解决方案涉及多个项目以及 EF 项目的配置需要在其他项目中复制。就我而言,仅有的两个项目是主应用程序(包括 EF 的东西)和 Wix 安装程序项目。

无论如何,我将它复制App.config到了 Wix 项目中,但这并没有什么不同。我在使用 wix 时遇到了很多麻烦,但我认为现在是时候了,但这可能是解决方案的一个指针。

任何人都可以帮忙吗?

4

1 回答 1

2

好的,正如 Gert Arnold 正确指出的那样,配置文件尚未复制到应用程序目录,因此无法找到连接字符串。创建的配置文件名为 MyAppName.exe.config,其中包含在 VS 和其他位(如 EF 配置详细信息)中创建的 App.config 文件中的内容。

(VS2010 安装程序和 Wix 安装程序的设置必须有所不同,因为 .msi 部署以前从未涉及过 .config 文件。)

无论如何,将 .exe.config 文件添加到 Product.wxs 文件作为包含在主要应用程序功能中的组件解决了这个问题。

新人笔记:

  • 如果您复制并粘贴组件标签,请记住设置 KeyPath="no"。

  • 正在部署的文件的路径相对于 .wxs 文件的位置

于 2012-12-07T11:37:51.297 回答