简体   繁体   中英

Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context

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>

Your csproj file is targeting .NET Framework v 4.8 which has System.ValueTuple already baked-in. I suspect that there is a conflict between the baked-in version and the version you are adding as a Nuget package.

Simply removing the PackageReference for System.ValueTuple (remove Nuget package) and re-build should do the trick, There might be some 'using' references in your code that you'll need to remove too.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM