ok I have a wpf app that interacts with a postgresql database, I'm using Npgsql for that matter, when testing everything works great with no exceptions, but when I made a setup.exe to my app and ran it I tried to sign in but it's giving me this exception
here's the block that is causing the exception
private void LoginButton_Click(object sender, RoutedEventArgs e)
{
username = user.Text;
password = pass.Password;
// Specify connection
NpgsqlConnection conn = new NpgsqlConnection( // the exception occurs here
"Server=127.0.0.1;" + // I also tried to set the server url to my pc's ip address on the local network but still the same problem
"User Id=username;" +
"Password=password;" +
"Database=db;" +
"Port=3500");
conn.Open();
// Define a query
NpgsqlCommand cmd = new NpgsqlCommand($"SELECT resid FROM resaccounts WHERE username = '{username}' and password = '{password}';", conn);
// Execute a query
NpgsqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
// Specify connection
NpgsqlConnection conn2 = new NpgsqlConnection(
"Server=127.0.0.1;" +
"User Id=adminBakri;" +
"Password=snoffi9000bakri6;" +
"Database=shobek_lobek_db;" +
"Port=3500");
conn2.Open();
// Define a query
NpgsqlCommand cmd2 = new NpgsqlCommand($"SELECT name FROM restaurants WHERE id = {(int)dr[0]};", conn2);
// Execute a query
NpgsqlDataReader dr2 = cmd2.ExecuteReader();
if (dr2.Read())
{
try
{
Properties.Settings.Default.UserName = Encrypt(username);
Properties.Settings.Default.UserPassword = Encrypt(password);
Properties.Settings.Default.ResId = (int)dr[0];
Properties.Settings.Default.ResName = dr2[0].ToString();
Properties.Settings.Default.Save();
}
catch (Exception exp)
{
Console.WriteLine(exp);
}
this.Hide();
Window mainWindow = new MainWindow();
mainWindow.Show();
this.Close();
}
conn2.Close();
}
else
{
Console.WriteLine("Error, Wrong info");
}
// Close connection
conn.Close();
}
I also have the latest versions of all the nuget packages including System.ValueTuple and Npgsql.
I followed the steps in this tutorial to make a setup.exe for my app, I don't know what the problem is
help me please, thanks.
EDIT: Extra information: I'm not using MVVM
EDIT: ADDING STEPS ABOUT HOW I MADE SETUP.EXE
step 1: I added a setup project to my solution.
step 2: I had the following folders.
step 3: I added the following things to the first two folders.
so far I have the following:
In Application Folder:
In Program Files Folder:
step 4: I made a shortcut of the file in Program Files Folder and added it to both folders User's Desktop and User's Programs Menu
step 5: I set the AlwaysCreate property value to True for all the folders.
step 6: what I did now is rebuild the solution and rebuild the setup project, then I went to the debug folder of the setup project and installed the app from setup.msi.
and here's my .csproj file:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{F2571E19-BB3A-46FA-B1A1-15ECD9392887}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Food_Ordering_Res</RootNamespace>
<AssemblyName>Restaurants Helper</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
<LangVersion>8.0</LangVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup />
<PropertyGroup>
<ApplicationIcon>main_logo2_qAL_icon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<StartupObject>Food_Ordering_Res.App</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Numerics" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="ConfirmLogOut.xaml.cs">
<DependentUpon>ConfirmLogOut.xaml</DependentUpon>
</Compile>
<Compile Include="IncomeInfoWindow.xaml.cs">
<DependentUpon>IncomeInfoWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Login.xaml.cs">
<DependentUpon>Login.xaml</DependentUpon>
</Compile>
<Compile Include="MealEditWindow.xaml.cs">
<DependentUpon>MealEditWindow.xaml</DependentUpon>
</Compile>
<Compile Include="NotificationService.cs" />
<Compile Include="OfflineMealAdditionInfoWindow.xaml.cs">
<DependentUpon>OfflineMealAdditionInfoWindow.xaml</DependentUpon>
</Compile>
<Compile Include="RelayCommand.cs" />
<Compile Include="Splash.xaml.cs">
<DependentUpon>Splash.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlAddCategory.xaml.cs">
<DependentUpon>UserControlAddCategory.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlAddMeal.xaml.cs">
<DependentUpon>UserControlAddMeal.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlCheckBalance.xaml.cs">
<DependentUpon>UserControlCheckBalance.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlEditMeal.xaml.cs">
<DependentUpon>UserControlEditMeal.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlExpenses.xaml.cs">
<DependentUpon>UserControlExpenses.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlHome.xaml.cs">
<DependentUpon>UserControlHome.xaml</DependentUpon>
</Compile>
<Compile Include="UserControlOfflineMealAddition.xaml.cs">
<DependentUpon>UserControlOfflineMealAddition.xaml</DependentUpon>
</Compile>
<Page Include="ConfirmLogOut.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="IncomeInfoWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Login.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="MealEditWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="OfflineMealAdditionInfoWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Splash.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlAddCategory.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlAddMeal.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlCheckBalance.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlEditMeal.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlExpenses.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlHome.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UserControlOfflineMealAddition.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Resource Include="main_logo2_qAL_icon.ico" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Resource Include="Assets\home.png" />
<Resource Include="Assets\1.png" />
<Resource Include="Assets\2.png" />
<Resource Include="Assets\3.png" />
<Resource Include="Assets\4.png" />
<Content Include="Fonts\ae_Dimnah.ttf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="LoadingIndicators.WPF">
<Version>0.0.1</Version>
</PackageReference>
<PackageReference Include="MaterialDesignColors">
<Version>1.1.2</Version>
</PackageReference>
<PackageReference Include="MaterialDesignThemes">
<Version>2.3.1.953</Version>
</PackageReference>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Windows.SDK.Contracts">
<Version>10.0.18362.2005</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
</PackageReference>
<PackageReference Include="Npgsql">
<Version>4.1.3.1</Version>
</PackageReference>
<PackageReference Include="Portable.BouncyCastle">
<Version>1.8.6.7</Version>
</PackageReference>
<PackageReference Include="RestSharp">
<Version>106.10.1</Version>
</PackageReference>
<PackageReference Include="System.Buffers">
<Version>4.5.1</Version>
</PackageReference>
<PackageReference Include="System.Memory">
<Version>4.5.4</Version>
</PackageReference>
<PackageReference Include="System.Numerics.Vectors">
<Version>4.5.0</Version>
</PackageReference>
<PackageReference Include="System.Runtime.CompilerServices.Unsafe">
<Version>4.7.1</Version>
</PackageReference>
<PackageReference Include="System.Runtime.WindowsRuntime">
<Version>4.7.0</Version>
</PackageReference>
<PackageReference Include="System.Runtime.WindowsRuntime.UI.Xaml">
<Version>4.7.0</Version>
</PackageReference>
<PackageReference Include="System.Text.Encodings.Web">
<Version>4.7.0</Version>
</PackageReference>
<PackageReference Include="System.Text.Json">
<Version>4.7.1</Version>
</PackageReference>
<PackageReference Include="System.Threading.Tasks.Extensions">
<Version>4.5.4</Version>
</PackageReference>
<PackageReference Include="System.ValueTuple">
<Version>4.5.0</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
This might seem like a long solution to your problem but depending on what Dean said, you should try to make a new project and set the target framework to .Net Framework 4.6.1 and then copy all your files from your old project to the new one, and then try everything all over again.
hope this solves your issue.