【问题标题】:Is there a DSC Resource for .NET version installed?是否安装了 .NET 版本的 DSC 资源?
【发布时间】:2018-01-04 20:50:53
【问题描述】:

处理一些 DSC 配置和我正在安装的一些应用程序需要安装特定版本的 .NET 作为先决条件。我想知道系统上是否安装了 .NET 版本的 DSC 资源?

【问题讨论】:

    标签: .net powershell dsc


    【解决方案1】:

    没有,但有一个通用应用程序资源,可用于安装任何 msi(和\或测试是否已安装)。

    您也可以使用 cchoco dsc 模块来使用 Chocolatey 安装特定的 .NET 框架版本:

        cChocoInstaller installChoco {
            InstallDir = "c:\choco"
        }
        cChocoPackageInstallerSet installSomeStuff {
            Ensure    = 'Present'
            Name      = @( "dotnet4.6.2" )
            DependsOn = "[cChocoInstaller]installChoco"
        }
    

    【讨论】:

    • 我看到的是,我将在我们的企业中进行许多 DSC 配置。与其每次我需要指定一个 .NET 版本时都关闭一个,不如有一个资源我提供版本号,它会完成所有繁重的工作,而不是每次都重新创建轮子。那有意义吗?宁愿避免在我们的环境中添加另一个我必须维护的工具。我承认我还没有花时间玩 Chocolatey。
    【解决方案2】:

    做了一些搜索,我发现有人确实这样做了。不是 100% 达到我想要的目标,但大部分繁重的工作已经完成。干得好,它是使用 PowerShell v4.0 方法编写的。

    https://github.com/guitarrapc/GraniResource/tree/master/DSCResources/Grani_DotNetFramework

    还有一个资源可以通过http下载: https://github.com/guitarrapc/GraniResource/tree/master/DSCResources/Grani_Download

    【讨论】:

    • 这与我提倡的方法(msi 路径)或多或少相同,最重要的是,它是 2 年前最后一次更改的自定义库。祝你好运
    • 在尝试使用内置 Package 资源失败后,我还使用 Grani 进行了 .NET 的离线安装。我遇到的问题是,较新版本的 .NET 安装为 KB,也就是“Microsoft Windows 更新”(至少在某些操作系统变体上)。据我所知,这些更新没有 Package 资源所需的“ProductId”。自动化离线 .NET 安装应该更容易。更多信息在这里:stackoverflow.com/questions/40616238/…
    • @Rob 我也读过同一篇文章,没有提到 Grani(没有扩展对所选解决方案的评论)。感谢其他人的链接。我确实构建了自定义资源(基于类),引用了 Grani 所做的工作。我通过忽略 Ensure 属性来简化我的方法,因为我只对确保存在 .NET 版本感兴趣。我还将行为限制在 4.0 及更高版本。不是一个完美的安装,但可以满足我的需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2022-01-27
    • 2011-03-23
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多