Как видно из заголовка, я пытаюсь расширить свой XML-файл user.config, который создается в моем основном проекте, на соседний проект установки.Я создаю MSI, используя Microsoft Visual Studio 2017 Projects Projects (ссылка) , а также использую Visual Studio 2017 для создания приложения с простой формой.
В качестве примера, вот мои два проекта -
В моем основном проекте Windows Form у меня есть свойство bool, которое называетсяtestBool по умолчанию имеет значение false.
В моей форме у меня есть кнопка, которая запускает следующий простой код и устанавливает для свойства testBool значениеtrue-
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
namespace TestUserConfig
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("testBool = " + Properties.Settings.Default.testBool.ToString());
//setting the property to true
Properties.Settings.Default.testBool = true;
MessageBox.Show("Test Bool = " + Properties.Settings.Default.testBool.ToString());
//save the
Properties.Settings.Default.Save();
//location of the user.config file (reference to System.Configuration required)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
MessageBox.Show(config.FilePath);
}
}
}
Это все работает должным образом и выводит файл user.config по следующему пути: C: \ Users \ USERNAME \ AppData \ Local \ Microsoft_Corporation \ PROJECTNAME_umi0kjiiephephcroktxjbzai0nh \ 14.0.7208.5000 \ user.config
Проблема, с которой я сталкиваюсь, заключается в том, что при создании MSI-кода тот же код не запускается так, как я ожидал.На самом деле MessageBox.Show даже не запускаются, за исключением последней строки кода - «MessageBox.Show (« Hello !! »);»
Я бы ожидал, что оставшиеся окна сообщений по крайней мере выведутпустое окно сообщения.
Кроме того, в каталоге сборки MSI (c: \ Program Files (x86) \ install dir) я вижу файл с именем «PROJECTNAME.dll.config», который содержит значение по умолчаниюдля testBool.
Если я опубликую приложение, запускаемое нажатием одной кнопки, приложение работает нормально. Есть ли что-то, что мне нужно добавить в мой проект установки, чтобы это работало?
Я прочитал каждый пост, который смог найтии не могу найти подходящий ответ. Я не хочу тратить кучу времени на изучение WIX, хотя мне может понадобиться, если это единственный путь.