发布 WPF 应用程序

Publishing WPF application

当我发布我的应用程序时,它在我的计算机上运行良好,但是,当我尝试在另一台计算机上 运行 它时,它一直要求我下载特定的 .net 核心 运行 次。我的目标框架是 3.1,它一直要求 3.1.4 运行 次或安装 3.1.0 运行 次。我下载了更新版本的 .net 核心 sdk,它与 运行 次 (3.1.300) 一起使用,但仍然没有变化。我也尝试将 .netcore 框架更改为 3.1.3,但它仍然只显示 3.1,可能是因为 3.1.3 是 3.1 的一部分。除了在其他用户计算机上安装 3.1.0 之外,不知道如何解决这个问题。

下面是我的csproj:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>VRI_configurator</RootNamespace>
    <UseWPF>true</UseWPF>
    <ApplicationIcon>KHVT.png</ApplicationIcon>
    <PackageIcon>KHVT.png</PackageIcon>
    <PackageIconUrl />
    <StartupObject>VRI_configurator.App</StartupObject>
  </PropertyGroup>

  <ItemGroup>
    <None Remove="Resources\img\KHVT.png" />
    <None Include="/Resources/img/KHVT.png">
      <Pack>True</Pack>
      <PackagePath></PackagePath>
    </None>
  </ItemGroup>

  <ItemGroup>
    <Resource Include="Resources\img\KHVT.png" />
    <Resource Include="Resources\img\search_icon.png" />
    <Resource Include="Resources\img\username_icon.png" />
    <Resource Include="Resources\img\password_icon.png" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0748" />
    <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.19" />
    <PackageReference Include="MySql.Data" Version="8.0.20" />
    <PackageReference Include="Prism.Core" Version="7.2.0.1422" />
    <PackageReference Include="System.Data.SqlClient" Version="4.8.1" />
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Properties\Resources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

</Project>

任何帮助将不胜感激

如果您不希望您的最终用户需要安装 .NET Core 运行时间才能运行您的应用程序,您可以将其发布为 独立应用程序

在 Visual Studio 的发布向导中单击配置文件下的 "Edit" 或 "New",然后将部署模式更改或设置为 Self-contained,目标 运行到 win-x86win-x64 的时间。

这将生成一个应用程序,其中包含 .NET Core 运行时间和库,以及您的应用程序及其依赖项。然后,应用程序的用户可以 运行 在没有安装 .NET Core 运行time 的机器上使用它。

更多信息请参考文档:

.NET Core application publishing overview

Deploy .NET Core apps with Visual Studio

经过一番搜索,我找到了问题的解决方案,我将下面的 xml 添加到 PropertyGroup 下的 csproj 文件中。现在它希望在用户计算机上安装 3.1.4 或更低版本的运行时框架,不再搜索 3.1.0。

<RuntimeFrameworkVersion>3.1.4</RuntimeFrameworkVersion>