不能将必备组件放在与我的应用程序相同的位置

我使用VS 2013,我希望sql server 2012 express localdb与我创建安装程序时的应用程序位于同一位置。 所以在项目属性>发布>先决条件中我选择第二个选项(从与我的应用程序相同的位置下载先决条件)。
但是当我构建解决方案时,它显示以下错误:
要在“先决条件”对话框中启用“从我的应用程序的相同位置下载先决条件”,必须将项目“SQL Server 2012 Express LocalDB”的文件“SqlLocalDB2012 \ x64 \ sqlncli.msi”下载到本地计算机。 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=239883 。
我怎么能解决这个问题? 谢谢!

我最近在我的应用程序中遇到了类似的问题,包括.NET framework 4.0。 一旦我弄清楚它到底在哪里寻找丢失的文件,我终于能够解决这个问题了。

我假设您已经安装了某些版本的SQL Server(Express或其他)。

如果您有Visual Studio 2013,则应具有以下文件夹:

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\ 

在该文件夹中,您应该有一个“SqlLocalDB2012”文件夹。

在该文件夹中应该有一个product.xml文件。 这也是安装程序应该驻留的位置。 在我的情况下,他们不在,我不得不收集它们并将它们放在带有product.xml文件的文件夹中(对于默认的英语安装程序)或者放在子文件夹中(例如fr为法语)。 (请注意,在我的情况下,我缺少.NET FrameWork安装程序而不是SqlLocalDB2012,但我假设问题与我遇到的问题相同)。

产品xml文件可以为您提供在何处查找计算机上缺少的文件的线索。 在我的例子中,前几个元素显示它正在寻找SQL Server目录中的东西:

  

通过在以下位置搜索它们,我能够在各个子目录中找到丢失的文件:

 C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap 

希望能为你做到这一点。

只需转到此链接并按照说明下载所需的文件,您必须下载x86和x64文件,并将它们放在根文件夹中的x86和x64文件夹中

C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.1A \ Bootstrapper \ Packages \ SqlLocalDB2012