发布 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-x86
或 win-x64
的时间。
这将生成一个应用程序,其中包含 .NET Core 运行时间和库,以及您的应用程序及其依赖项。然后,应用程序的用户可以 运行 在没有安装 .NET Core 运行time 的机器上使用它。
更多信息请参考文档:
经过一番搜索,我找到了问题的解决方案,我将下面的 xml 添加到 PropertyGroup 下的 csproj 文件中。现在它希望在用户计算机上安装 3.1.4 或更低版本的运行时框架,不再搜索 3.1.0。
<RuntimeFrameworkVersion>3.1.4</RuntimeFrameworkVersion>
当我发布我的应用程序时,它在我的计算机上运行良好,但是,当我尝试在另一台计算机上 运行 它时,它一直要求我下载特定的 .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-x86
或 win-x64
的时间。
这将生成一个应用程序,其中包含 .NET Core 运行时间和库,以及您的应用程序及其依赖项。然后,应用程序的用户可以 运行 在没有安装 .NET Core 运行time 的机器上使用它。
更多信息请参考文档:
经过一番搜索,我找到了问题的解决方案,我将下面的 xml 添加到 PropertyGroup 下的 csproj 文件中。现在它希望在用户计算机上安装 3.1.4 或更低版本的运行时框架,不再搜索 3.1.0。
<RuntimeFrameworkVersion>3.1.4</RuntimeFrameworkVersion>