0

我有一个自定义操作,用于部署一些文件,这些文件位于切换包中的 msi 旁边。我的自定义操作通过 OriginalDatabase 参数传递到 msi 路径,我正在检查它旁边是否有文件夹。没有什么太疯狂了,但很难弄清楚。

从本地复制的文件安装单个或多个用户就像一个冠军。从网络共享运行 setup.exe 时安装单个用户可以正常工作,但是当我从网络共享安装所有用户时,我遇到了安全异常。

有问题的行是这样的:

DirectoryInfo[] subdirectories = workingDirectoryInfo.GetDirectories("Foo");

自定义操作运行,SecurityAction.Demand所以我应该拥有我需要的所有访问权限。

任何人都可以提供的任何输入将不胜感激。

谢谢,凯西

4

1 回答 1

0

我相信当您为每个用户安装时,服务器端不需要提升来进行交易,因此它可以模拟交互式用户并可以访问文件。当您为所有用户安装时,它必须提升,所以现在它基本上作为系统运行,该系统将使用机器帐户访问文件并繁荣您会收到权限错误。

请问为什么这些文件不在您的安装程序中?是否有某种方法可以包含它们,这样您就不必进行自定义操作?否则,您可能必须编写一个自定义操作来检测 OriginalDatabase 在网络共享上并阻止安装,除非用户在运行之前将所有文件都复制下来。

于 2010-09-28T22:44:52.500 回答