1

我已经启动并运行了我的应用程序,但它似乎不想通过 ClickOnce 正确安装。它使用 Powershell,我在我的应用程序文件中包含了 Microsoft.Management.Infrastructure.DLL、Microsoft.Management.Infrastructure.Native.DLL 和 System.Management.Automation.DLL。我已经尝试了所有这些方式(包括、先决条件、排除)。我还通过将它们从 GAC 复制到该文件夹​​中,将它们手动复制到我的参考文献中。此外,我将它们设置为复制本地。

为此,我遵循了几条指示,告诉我应该将我的 csproj 文件中的引用更改为:

<Reference Include="Microsoft.Management.Infrastructure"/>

对于每个参考。这样,它实际上会在计算机上查找最新的 DLL。

问题是,如果它们设置为 prereqs,我会收到一条消息,告诉我它们应该首先安装在 GAC 中。如果它们设置为包含,我相信它会复制文件,让我的应用程序运行,但我得到......

“加载系统 Windows PowerShell 管理单元时出错。请联系 Microsoft 支持服务。”

现在,我将范围缩小到不同版本的 Powershell 或不同计算机上的自动化 dll。整个应用程序在我的计算机上运行良好,但在(某些)其他计算机上运行良好。

所以!我不知道我是否提供了太多细节,但我希望我的应用程序简单地复制所需的 DLL 或引用已经存在的 DLL(最好是后者)。

有人能帮忙吗?

4

1 回答 1

1

这些文件由 PowerShell 安装。您不想将它们与您的应用程序一起安装。您正在使用的安装程序应该提供一种“排除”这些依赖项的方法。最好的办法是检查您需要的 PowerShell 版本作为自定义操作,然后在用户不需要适当版本的 PowerShell 时提醒用户。

于 2013-02-14T21:30:25.377 回答