![](/img/trans.png)
[英]Visual Studio 2017 C# installer project is not installing my app
[英]Visual Studio Project Installer not installing all dll's
我有一個名為“ start.exe”的C#exe,運行時它將檢查SQL數據庫,如果滿足某些條件,則將文件復制到文件夾中。
這適用於大多數計算機。
但是在某些計算機上,當我嘗試運行它時,出現以下錯誤消息。
System.invalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' is not registered on the local machine
為了解決這個問題,我創建了一個安裝項目,應該添加缺少的.dll。
我創建了設置項目,轉到了application文件夾,添加了該項目的主要輸出。
然后,我對所有文件運行批處理版本,並將msi和setup .exe文件復制到有問題的計算機上並運行它。
它將System.Net.Http.dll和'start.exe'添加到計算機。
當我運行exe時,它仍然給我同樣的錯誤。
我相信消息框來自這些代碼行。
try
{
using (var conn = new OleDbConnection(@"Provider =Microsoft.ACE.OLEDB.12.0;Data Source=" + CurFeSource + ";"))
{
conn.Open();
using (var cmdBE = new OleDbCommand("SELECT value FROM Tab1", conn))
{
OleDbDataReader rdrBE = cmdBE.ExecuteReader();
rdrBE.Read();
be_version = (rdrBE.GetString(0));
rdrBE.Close();
}
using (var cmdFE = new OleDbCommand("SELECT Col FROM Links", conn))
{
OleDbDataReader rdrFE = cmdFE.ExecuteReader();
rdrFE.Read();
fe_version = (rdrFE.GetString(0));
rdrFE.Close();
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return false;
}
編輯:
正如SQLGeorge所說,我需要安裝Microsoft.ACE.OLEDB.12.0。
但是,如何將其添加到安裝項目中。
必須從Microsoft下載Microsoft.ACE.OLEDB.12.0: https : //www.microsoft.com/zh-CN/download/details.aspx?id=13255
摘錄自微軟:
此下載將安裝一組組件,這些組件有助於在現有Microsoft Office文件(例如Microsoft Office Access 2010(*。mdb和.accdb)文件)和Microsoft Office Excel 2010 ( .xls,*。xlsx和* )之間進行數據傳輸。 xlsb)文件添加到其他數據源,例如Microsoft SQL Server。 還支持與現有文本文件的連接。 已安裝ODBC和OLEDB驅動程序,以供應用程序開發人員在開發與Office文件格式連接的應用程序時使用。
如Microsoft所述:
作為Jet的常規替代品(如果需要Jet的常規替代品,則應使用SQL Server Express Edition )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.