App-V 5;安装包后更改文件

App-V 5;安装包后更改文件

我是一名学生,在一家销售专有软件解决方案的公司工作。我的任务是在 APP-V 中测试他们的应用程序。客户端应该可以修改参数,并且应该在安装软件包后在 VFS 中更改该参数。

目前,我将以下脚本添加到我的 V-APP 包的 scripts/ 部分;这应该会修改 ProgramData\OSG\ShellPlus\Config\ 中的 LocalSetting.xml 中的一些内容

msgbox "test"
replaceWith = WScript.Arguments(0)

Set objShell = CreateObject( "WScript.Shell" )
appDataLocation=objShell.ExpandEnvironmentStrings("%PROGRAMDATA%")
localSettings = appDataLocation & "\OSG\ShellPlus\Config\" & "LocalSetting.xml"

Const ForReading = 1
Const ForWriting = 2

msgbox "test"
x = msgbox(localSettings, 0, "localSettings")

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(localSettings, ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "OSG-021\SHELLPLUS", replaceWith)

Set objFile = objFSO.OpenTextFile(localSettings, ForWriting)
objFile.Write strNewText
objFile.Close

我将其添加到_DeploymentConfig;

    <UserScripts>
  <StartProcess RunInVirtualEnvironment="true">
    <Path>.\Scripts\writeConfig.vbs</Path>
    <Arguments>TEST</Arguments>
    <Wait RollbackOnError="true"/>
    <ApplicationId>[{AppVPackageRoot}]\..\Scripts\writeConfig.vbs</ApplicationId>
  </StartProcess>

现在我尝试直接运行 .msi,但脚本从未执行。有什么想法吗?我没有主意了。

答案1

感觉你跳过了一些“应该”可行的步骤,但又遗漏了某些地方。你如何确定 .MSI 正在使用 .XML?我个人会尝试使用 PoSH 命令来添加包并发布 - 至少它们会报告错误。

这里的根本原因是:

  1. 无法通过 DynamicDeploymentConfiguration 使用 UserScript。请参阅http://blogs.technet.com/b/appv/archive/2012/12/10/scripting-and-embedded-scripting-for-appv-5-0-dynamic-deployment-and-user-configuration-scripting.aspx

这里有几件事看起来有点不对劲:

  1. 此外,您的 ApplicationID 不应该是 App-V 中的“应用程序”吗?这里有一个循环引用(不应该是),ApplicationId 应该是“notepad.exe”或其他。
    提示:提供 ScriptEngine 也可能有帮助 - 至少在您发布并尝试启动后,您会看到 procmon 中发生了一些事情……

  2. 请注意,启动这些脚本也存在一些时间问题,您可能需要将主快捷方式指向 .VBS,然后 .VBS 相应地启动 .exe。即使您启动了它(按用户发布而不是 DynamicDeploymentConfig 会这样做)- 我不认为 App-V 会等待您的 .VBS 完成后再启动真正的 ApplicationId - 假设我在第 2 点中有所收获。

答案2

您的客户端机器上是否启用了脚本?

如果没有,请尝试运行以下 Power shell 命令,

设置 AppvClientConfiguration -EnablePackageScripts $true

答案3

我们的环境中存在同样的问题;脚本无法从包内运行。我们的 Microsoft 顾问建议我们避免使用脚本功能。

相关内容