标签: dism

以编程方式启动独立于平台的流程

情况

我试图以编程方式运行命令行工具DISM.exe.当我手动运行它时它可以工作,但是当我尝试使用以下代码生成它时:

var systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);

var dism = new Process();
dism.StartInfo.FileName = Path.Combine(systemPath, "Dism.exe");
dism.StartInfo.Arguments = "/Online /Get-Features /Format:Table";
dism.StartInfo.Verb = "runas";
dism.StartInfo.UseShellExecute = false;
dism.StartInfo.RedirectStandardOutput = true;

dism.Start();
var result = dism.StandardOutput.ReadToEnd();
dism.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

然后我的result出现:

错误:11

您无法使用32位版本的DISM为正在运行的64位操作系统提供服务.请使用与您的计算机体系结构相对应的DISM版本.

问题

我实际上已经意识到导致这种情况的原因了:我的项目设置为编译x86平台.(例如,请参阅此问题,尽管没有一个答案提到这一点).但是,不幸的是,目前我们仍然需要继续瞄准这个平台,我无法通过切换到任何CPU来解决这个问题.

所以我的问题是如何以独立于其父平台的方式以编程方式生成流程 - 即保持我的项目以x86为目标,但启动一个流程,该流程将针对其所在机器的正确平台.

.net c# dism

6
推荐指数
1
解决办法
857
查看次数

DISM.exe 返回代码?

我有一个调用 dism.exe 程序的程序,它在后台运行一些命令。现在,我只检查返回码 0 或其他任何内容,以显示进程失败或成功。为了获得准确的返回错误,我可以用什么交叉检查返回代码。DISM 引用了哪些返回?

.net c# windows error-handling dism

5
推荐指数
1
解决办法
6701
查看次数

WIX启用Windows功能

我必须检查是否启用了一些Windows功能才能安装我的软件.

我可以检查它或使用dism命令行工具安装它.

我创建了一个自定义操作来执行此操作,但有没有办法以"WIX本机方式"执行此操作?

<Property Id="dism" Value="dism.exe" />
<CustomAction Id="InstallMSMQContainer" Property="dism" ExeCommand=" /online /enable-feature /featurename:MSMQ-Container /featurename:MSMQ-Server /featurename:MSMQ-ADIntegration" Return="check" Impersonate="yes"  Execute="oncePerProcess"/>

<InstallUISequence>
  <Custom Action="InstallMSMQContainer" After="CostFinalize" Overridable="yes">NOT Installed</Custom>
</InstallUISequence>
Run Code Online (Sandbox Code Playgroud)

问题是命令启动命令提示符,这对最终用户来说非常难看.我怎样才能让它变得更好?我不知道我是否需要一个bootstraper来执行此操作(如安装.NET Framework).

是否存在管理这些事情的延伸?

我现在正在使用WIX 3.7.

wix wix-extension wix3.7 dism

4
推荐指数
1
解决办法
3773
查看次数

"错误87在此上下文中无法识别所有选项"使用DISM启用IIS

我试图使用一个蝙蝠来启用IIS在Windows 7(专业)64位机器上运行asp.net应用程序,似乎经常遇到这个问题.我以管理员身份运行bat文件.我正在使用的bat文件中的条目如下:

%systemroot%\sysnative\dism /online /enable-feature /all /featurename:IIS-ASPNET45
Run Code Online (Sandbox Code Playgroud)

根据我阅读的文档,所有开关应该启用运行ASP.net 4.5所需的所有父功能.我也试过使用just IIS-ASPNET而且IIS-ASPNET40所有人都收到了同样的错误.

Error 87 the all option is not recognised in this context
Run Code Online (Sandbox Code Playgroud)

我最初尝试单独运行我的应用程序所需的每个功能,但遇到类似的问题.

iis batch-file dism

4
推荐指数
2
解决办法
7256
查看次数

通用Windows应用程序无法启动,"AppxDeploymentFailureBlue"

我已经在PC上为所有用户安装了我自己的通用Windows应用程序,在审核模式下登录时使用DISM工具.执行此操作后,我重新启动进入OOBE(使用命令),创建一个新用户并尝试启动此应用程序.sysprep

结果是没有任何反应 - 应用程序无法启动(也在任务管理器中检查).在Windows的事件查看器中,我找到了一个关于AppxDeploymentFailureBlue的条目,每次我尝试启动该应用程序时都会出现该条目- 但它不提供有关该问题或其原因的任何进一步信息.我试图在线查找这个错误代码,但我能找到的是关于Windows应用程序或Windows内置应用程序的损坏版本的一些讨论 - 这不是这里的情况.

此外,这个应用程序有一个StartupTask,它无法正常启动似乎阻止其他应用程序在启动任务/应用程序列表中注册自己(如果未安装该应用程序,则它们已成功注册).

appx dism win-universal-app uwp windows-10-universal

2
推荐指数
1
解决办法
3362
查看次数

如何在已部署的Windows映像上为所有用户侧载Windows应用程序?

我们有一个针对Windows 8.1和Windows 10的企业Windows商店应用程序.我们目前正在使用sideloading来部署应用程序.我们需要能够为特定设备上的所有用户部署应用程序.

根据这篇technet文章:

https://technet.microsoft.com/en-us/library/dn613833(v=ws.11).aspx

您可以使用DISM为设备上的所有用户配置应用程序,但仅适用于尚未登录该设备的用户:

配置的应用程序将注入映像中,并在用户首次登录时为每个用户安装.

我想要做的是为特定设备上的所有当前用户安装我们的应用程序,无论他们之前是否已登录该设备.

我做了很多研究,但我没有找到任何有关如何实现这一目标的细节.

目前Windows商店应用程序是否可以使用?

windows-applications windows-store-apps sideloading windows-8.1 dism

1
推荐指数
1
解决办法
2451
查看次数