C#应用程序部署:"从服务器返回引用"错误

时间:2016-10-04 03:23:36

标签: c# .net deployment

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

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

它可以在我的计算机上正常工作,但不能在任何其他计算机上工作。有关如何成功共享/部署此应用程序的任何想法?谢谢。

3 个答案:

答案 0 :(得分:0)

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

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

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

enter image description here

答案 1 :(得分:0)

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

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

uiAccess="true"是我的问题。我无辜地认为我的控制台应用程序需要UI访问(这是一个用户运行的控制台应用程序,是我的想法)。将其更改为false可解决我的问题。

答案 2 :(得分:0)

使用以下方法时,我遇到了同样的问题(发球区返回了引荐)

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

问题在于,只有在以下情况下,uiAccess才能成为true

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

您可以做的是:

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