3

我正在编写一个需要 .NET 才能运行的程序。当我在 Windows 2008 Server R2 上运行它时,它在 .NET 3.5 安装时失败。这是因为在此版本的 Windows 中,您只能通过服务器管理器(或角色管理器)安装 .NET 3.5。

我想知道是否有办法以编程方式做到这一点?

我在网上搜索,发现也许我可以使用 PowerShell 或 WMI。我希望这里有人可以验证这是要走的路,如果不是,请指出我正确的方向。

更新:

通过进一步调查,我发现使用 WMIs Win32_ServerFeature_ID 类我可以枚举现有功能。但是我找不到任何关于如何添加新功能的解释。

非常需要帮助。

谢谢。

4

4 回答 4

4

这可以通过以dism编程方式调用命令来完成:

dism /Online /Enable-Feature:NetFx3

我很想听听任何不需要外壳的解决方案。

于 2011-07-19T20:18:36.320 回答
2

Win32_ServerFeaturewmi 类不公开任何添加或删除 Windows 服务器功能的方法,仅用于列出已安装的功能。据我所知,没有 WMI 类来执行此任务。我可以推荐你的选项是使用这些PowerShell Cmdlets

于 2011-07-20T15:01:45.623 回答
1

我知道这个回复是针对 Windows 7 的,但对于任何人来说,有一个适用于 Windows 7 的扩展。 添加/删除 Windows 7 功能的 PowerShell 模块

于 2011-09-28T14:05:24.847 回答
0

我们使用 PowerShell 来自动化服务器设置,您会发现它可以很好地完成您喜欢的工作。对于您正在查看脚本的功能,它看起来像这样:

Import-Module ServerManager
$netFx = Get-WindowsFeature -Name AS-NET-Framework
if ($netFx -eq $null)
{
  Add-WindowsFeature AS-NET-Framework
}

该脚本将可以通过您的应用程序的安装过程运行......可能。我已经从 Windows Installer 自定义操作运行 PowerShell,这是(根据我的经验)最困难的情况。

于 2011-07-25T20:23:59.583 回答