不能将先决条件组件放在与我的应用程序相同的位置

时间:2014-09-04 19:44:02

标签: c# winforms visual-studio prerequisites

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

2 个答案:

答案 0 :(得分:2)

我最近在我的应用程序中遇到了类似的问题,包括.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目录中的东西:

<FileCheck
      Property="sqllocaldbVersion"
      FileName="sqlservr.exe"
      SearchPath="Program Files\Microsoft SQL Server\110\LocalDB\Binn"
      SpecialFolder="WindowsVolume"
    />

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

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

希望能为你做到这一点。

答案 1 :(得分:1)

转到this link并按照说明下载所需的文件 棘手的一点是你必须下载x86和x64文件并将它们放在根文件夹中的x86和x64文件夹中

  

C:\ Program Files(x86)\ Microsoft   的SDK \的Windows \ v8.1A \引导程序\软件包\ SqlLocalDB2012