【问题标题】:C# application deployment: "a referral was returned from the server" errorC# 应用程序部署:“从服务器返回了引用”错误
【发布时间】:2016-10-04 03:23:35
【问题描述】:

我已经通过 Visual Studio 构建了一个 C# 应用程序。我现在正在尝试部署它并将其发送给朋友和家人进行测试。我已经尝试从 bin 文件夹中提取自动生成的可执行文件并将其发送出去进行测试。

但是,当我的测试人员尝试在他们自己的计算机上运行可执行文件时,他们会看到以下错误:“从服务器返回了一个引用。”该程序甚至没有被执行。我一直在网上搜索答案。代码签名似乎是一个常见的主题,但我还没有找到有效的解决方案。

它在我的电脑上运行良好,但在任何其他电脑上都不行。关于如何成功共享/部署此应用程序的任何想法?谢谢。

【问题讨论】:

    标签: c# .net deployment


    【解决方案1】:

    在我的场景中,我添加了一个应用程序清单,因为我想要求程序以提升的权限运行,因为我正在 Windows 事件日志中创建一个新的日志源。在节点<requestedPrivileges> 下,我放了一行:

            <requestedExecutionLevel level="requireAdministrator" uiAccess="true" />
    

    uiAccess="true" 是我的问题。我天真地认为我的控制台应用程序需要 UI 访问(我认为这是一个用户运行的控制台应用程序)。将其改回 false 解决了我的问题。

    【讨论】:

    • 这也是我的想法!感谢您的解决方案!
    【解决方案2】:

    我在使用时遇到了同样的问题(从服务返回了一个推荐):

    &lt;requestedExecutionLevel level="requireAdministrator" uiAccess="true" /&gt;

    问题是uiAccess 只能在以下情况下为true

    • 应用程序进行了数字签名。
    • 必须位于文件系统LINK的安全位置

    你可以做的是:

    1. 检查您的应用程序是否真的需要uiAccess LINK
    2. 签署申请

    【讨论】:

    • 谢谢,我必须将 uiAccess 设置为 false 才能正常工作
    【解决方案3】:

    好的,终于找到了这个问题的答案。就我而言,问题不在于应用程序需要代码签名,而是我们没有将所有正确的文件连同可执行文件一起发送给测试人员。

    在项目文件夹中,有很多文件(见下面的截图)。我错误地认为只需将 .exe 文件发送给其他人就可以让他们运行程序,而事实上,程序需要访问其他文件(尤其是 .dll 文件)才能正确编译。

    当我们最终将文件夹中的所有文件发送给测试人员时,他们能够成功运行应用程序。因此,似乎错误消息“从服务器返回了一个引用”,至少在这种情况下,意味着它无法找到编译和运行所需的所有必需组件。

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2012-08-31
      相关资源
      最近更新 更多