【问题标题】:One Click Deployment Setup Requires Installation of .NET Framework 4.7.2一键部署设置需要安装 .NET Framework 4.7.2
【发布时间】:2020-02-24 22:25:14
【问题描述】:

我正在尝试创建一个不需要管理员权限即可使用的应用程序。

当我发布应用程序时,会显示 3 个组件:

  1. 名为“应用程序文件”的文件夹
  2. setup.exe
  3. MyApplicationName.application

运行MyApplicationName.application 会按预期执行我的应用程序,在桌面上添加一个图标,并在推出更新时通知用户。 :)

我的用户默认尝试点击setup.exe,这需要他们获得管理员权限才能安装应用程序。

我可以看到两种解决方案,我会接受任何一种。

  1. 如何摆脱在发布时创建的setup.exe 文件。
  2. 如何获得setup.exe 文件而不需要安装 .NET 框架或其他任何需要管理员权限/特权的东西。

【问题讨论】:

  • 您是否尝试在部署后仅删除“setup.exe”文件?我认为不需要。
  • 我将把我的解决方案部署到许多不同的位置。我可以编写一个 powershell 脚本去每个位置并删除它,但必须有比被动响应更好的方法。
  • 如果您的应用程序在 .Net 4.7.2 上运行,您的客户需要安装它 - 没有办法绕过它。您可以迁移到 .Net Core,在那里您可以进行自包含部署,而无需拉取框架。
  • @trailmax 如果他们使用其他文件,他们可以在不安装任何东西的情况下运行它,您对此有何看法。是否存在我可以删除的依赖项以允许 setup.exe 文件在没有管理员权限的情况下运行?还要感谢您让我了解自包含部署。时间允许的时候我会调查的。
  • 如果他们可以在不安装框架的情况下执行myApp.exe,那么他们已经安装了框架。这意味着您的setup.exe 不会检查框架,只是直言要求安装它。

标签: c# publishing setup.exe


【解决方案1】:

为了摆脱Setup.exe,我必须在Visual Studio 中卸载我的项目并编辑.csproj 文件。

我所做的更改如下所示。

将 BootstrapperEnabled 设置为 false

<BootstrapperEnabled>false</BootstrapperEnabled>

删除了下面的部分

<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
  <Visible>False</Visible>
  <ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
  <Install>true</Install>
</BootstrapperPackage>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 2021-10-02
    • 2010-12-15
    相关资源
    最近更新 更多