【问题标题】:Build a Visual Studio Solution with C# AND Powershell projects使用 C# 和 Powershell 项目构建 Visual Studio 解决方案
【发布时间】:2017-04-28 17:40:44
【问题描述】:

Visual Studio 2015

VS 新手。我有许多 PS 脚本要迁移到 C# 解决方案中。该解决方案理论上会做一些事情,然后通过按下按钮或其他触发器,运行 Powrshell 脚本。

问题是当我添加两个项目时,我不知道如何从C#端访问PS脚本。我尝试将 PS 项目添加到解决方案中,然后添加对它的引用。但是当我尝试构建(即使使用空白 PS 脚本)时,我收到错误“CS0006 Metadata file 'MyPath\PSTest\bin\Debug\MyApplication.exe could not be found”

甚至可以做到这一点吗?我想要的只是一个包含一个主 C# 项目和一个 Powershell 项目的解决方案,我可以从 C# 端编辑和使用这些脚本。

编辑:真的不想从 C# 环境中调用一些脚本。我想向解决方案添加一个 Powershell 项目,并从那里进一步开发 Powershell 脚本,并在 C# 中创建将使用 Powershell 项目的新应用程序。

【问题讨论】:

  • 是的,右键单击您的 c# 项目 > 添加现有项目 > 找到您的 .ps 文件并添加它
  • 什么是“PowerShell 项目”?您使用什么项目模板来创建这个项目?我在已安装的模板或在线模板中都没有看到 PowerShell 项目模板。 (我建议您将 PS 脚本放在 C# 项目中的文件夹中。我还假设您的问题是如何从 C# 程序中找到脚本,而不是如何执行它们。)跨度>
  • @OldFart - 右键单击​​解决方案,选择添加->新建项目。从左边距列表中选择 PowerShell。选择 PowerShell 脚本项目。
  • @JoeBlow - 现在找到了。我仍然想知道在这种情况下,PowerShell 项目是否是正确的选择。如果 PS 脚本放在 C# 项目下,则可以选择将它们复制到输出文件夹。对于 PowerShell(脚本)项目,我没有看到任何此类选项。

标签: c# powershell visual-studio-2015


【解决方案1】:

我将提供几个类似的选项。

选项 1,类似于 GibralterTop 的回答,是将 PS 脚本放入您的 C# 项目中。

  1. 右键单击项目并选择“添加文件夹”以创建一个 名为“脚本”的文件夹。
  2. 将您的脚本添加到此文件夹。
  3. 在解决方案资源管理器中选择所有脚本。在文件中 属性,将“复制到输出目录”选项设置为“复制如果 较新”。

当你的程序运行时,它将能够找到其中的脚本

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Scripts")

选项 2 类似,但您可以保留 PowerShell 脚本项目。

  1. 将您的脚本放入您的 PowerShell 脚本项目中。
  2. 在您的 C# 项目中创建一个名为“Scripts”的文件夹。
  3. 在 Scripts 文件夹中选择 Add Existing Item。
  4. 浏览到您的 PowerShell 项目并选择您的脚本。 而不是单击添加按钮,单击向下箭头到 并选择“添加为链接”。
  5. 选择C#项目中的链接,设置“复制到输出 目录”选项“如果较新则复制”。

如果您添加任何新的 PS 脚本,则需要重复添加链接的步骤。

最终,您可能会构建一个安装程序。您需要让它将脚本放在相同的相对位置;安装文件夹下的“Scripts”文件夹。

【讨论】:

    【解决方案2】:

    如果您在 VS 中右键单击您的 C# 项目,您将在上下文菜单中看到“添加”。将鼠标悬停在“添加”上,您将看到“现有项目”并单击它。

    Shift + Alt + A是上述步骤的快捷方式。

    导航到您的.ps 文件所在的位置并打开它。 .ps 文件现在将位于您的 C# 项目中。

    然后,您需要查找如何执行Powershell文件并引用相对路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多