C# 错误-在安装C Project.exe期间添加连接字符串
我遵循了本教程,但在安装过程中出现了错误 错误1001无法创建ProjectName的实例。调用的目标已引发安装程序类型->异常->对象引用未设置为对象的实例 my Installer.cs代码:C# 错误-在安装C Project.exe期间添加连接字符串,c#,connection,installation,C#,Connection,Installation,我遵循了本教程,但在安装过程中出现了错误 错误1001无法创建ProjectName的实例。调用的目标已引发安装程序类型->异常->对象引用未设置为对象的实例 my Installer.cs代码: public Installer() { InitializeComponent(); string dataSource = "Data Source =" + Context.Parameters["DataSource"];
public Installer()
{
InitializeComponent();
string dataSource = "Data Source =" + Context.Parameters["DataSource"];
string initialcatalog = "Initial Catalog=" + Context.Parameters["InitialCatalog"];
string userid = "User ID=" + Context.Parameters["UserID"];
string password = "Password=" + Context.Parameters["Password"];
dataSource = dataSource + ";" + initialcatalog;
dataSource = dataSource + ";Persist Security Info=True;"+userid+";"+password;
MessageBox.Show("instance=" + dataSource);
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
MessageBox.Show(Assembly.GetExecutingAssembly().Location + ".config");
//Getting the path location
string configFile = string.Concat(Assembly.GetExecutingAssembly().Location, ".config");
map.ExeConfigFilename = configFile;
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.
OpenMappedExeConfiguration(map, System.Configuration.ConfigurationUserLevel.None);
string connectionsection = config.ConnectionStrings.ConnectionStrings
["TECHNOSOFT.Properties.Settings.Tech2014ConnectionString1"].ConnectionString;
ConnectionStringSettings connectionstring = null;
if (connectionsection != null)
{
config.ConnectionStrings.ConnectionStrings.Remove("TECHNOSOFT.Properties.Settings.Tech2014ConnectionString1");
MessageBox.Show("removing existing Connection String");
}
connectionstring = new ConnectionStringSettings("TECHNOSOFT.Properties.Settings.Tech2014ConnectionString1", dataSource);
config.ConnectionStrings.ConnectionStrings.Add(connectionstring);
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");
}
我错过了什么?Help上下文属性在构造函数中仍然为空。这就是为什么会出现null异常。 相反,将逻辑移到Install方法
public override void Install(IDictionary stateSaver)
{
// Access context and put your logic here
}