0

我一直在为我和我的朋友发布我的游戏进行测试,我已经开始在代码中制作一个文本文件以用作错误日志,但我遇到了一些问题,我在互联网上找不到任何东西帮我。

我想要它,以便用户可以获取安装文件,将其安装在自定义位置,通过快捷方式运行它,这样我就可以在用户安装它的位置创建文件以保存游戏、错误日志等。

发生的情况是,我创建了一个 clickonce 应用程序,但在使用 setup.exe 后,该快捷方式无法使用,它只是说“程序已停止响应”,因为它正在尝试创建文件,而我无法以管理员身份运行它。我只能将管理员设置为 setup.exe,游戏的快捷方式或任何 clickonce 应用程序都没有选项。而且我不知道如何让用户选择安装目录。

我搜索了谷歌和 msdn 库,但找不到任何东西。它说如果我不使用 clickonce 部署,我需要另一个安装包,但我找不到任何东西。我也尝试修改 app.manifest 转:

 <requestedExecutionLevel level="asInvoker" uiAccess="false" />

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

但它不允许我发布它,因为它是一个 clickonce 应用程序,如果我在安全性中关闭它,它只会在我尝试发布它时重新打开它。有人可以告诉我我的选择吗,我只想像其他所有游戏一样正常安装游戏,这让我发疯,我找不到任何东西。

4

1 回答 1

1

这不是问题的直接答案,但它可能是您真正需要的。

您应该能够在 ClickOnce 应用程序部署文件夹中创建和使用文件,而无需任何安全限制(无需管理员权限),您可以使用

ApplicationDeployment.CurrentDeployment.DataDirectory

请注意,更新应用程序时,此文件夹中的所有内容都将被重写,因此您应该重新创建所有日志文件等。

编辑

实际上,请注意 - 这篇msdn文章另有说明:您仍然需要安全权限才能读取和写入此文件夹。

但是,它还说,隔离存储正是用于此目的:在部分信任的情况下读取和写入特定于应用程序的数据,例如使用未提升的 ClickOnce 应用程序:

隔离存储

隔离存储通过使用简单的 API 提供了用于创建和访问文件的 API。存储文件的实际位置对开发人员和用户都是隐藏的。

隔离存储适用于所有版本的 .NET Framework。隔离存储也适用于部分受信任的应用程序,无需额外的权限授予。如果您的应用程序必须以部分信任的方式运行,但必须维护特定于应用程序的数据,您应该使用独立存储。

编辑 2

但是,在使用隔离存储之前,请尝试应用程序部署目录——它对我来说很好用!

于 2012-04-24T04:09:16.413 回答