Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C和Powershell项目构建Visual Studio解决方案_C#_Powershell_Visual Studio 2015 - Fatal编程技术网

C# 使用C和Powershell项目构建Visual Studio解决方案

C# 使用C和Powershell项目构建Visual Studio解决方案,c#,powershell,visual-studio-2015,C#,Powershell,Visual Studio 2015,Visual Studio 2015 对新手。我有许多PS脚本要迁移到C解决方案中。理论上,这个解决方案会做一些事情,然后通过按下按钮或其他触发器,运行Powrshell脚本 问题是,当我添加这两个项目时,我不知道如何从C端访问PS脚本。我尝试将PS项目添加到解决方案中,然后添加对它的引用。但当我尝试使用空白PS脚本进行构建时,我得到错误CS0006元数据文件“MyPath\PSTest\bin\Debug\MyApplication.exe”无法找到 甚至可以这样做吗?我想要的是一个包含主C项

Visual Studio 2015

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

问题是,当我添加这两个项目时,我不知道如何从C端访问PS脚本。我尝试将PS项目添加到解决方案中,然后添加对它的引用。但当我尝试使用空白PS脚本进行构建时,我得到错误CS0006元数据文件“MyPath\PSTest\bin\Debug\MyApplication.exe”无法找到

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


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

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

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

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

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


我将提供两个类似的选项

选项1,类似于GibralterTop的答案,是将PS脚本放在您的C项目中

在项目上单击鼠标右键,然后选择“添加文件夹”以创建文件夹 名为Scripts的文件夹。 将脚本添加到此文件夹。 在解决方案资源管理器中选择所有脚本。在文件中 属性,将“复制到输出目录”选项设置为“复制” 更新的。 当您的程序运行时,它将能够在中找到脚本

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Scripts")
选项2类似,但您可以保留PowerShell脚本项目

将脚本放入PowerShell脚本项目中。 在C项目中创建名为Scripts的文件夹。 在“脚本”文件夹中选择“添加现有项”。 浏览到您的PowerShell项目并选择您的脚本。 与其单击“添加”按钮,不如单击“添加”按钮的向下箭头 右键单击它并选择“添加为链接”。 选择C项目中的链接并将副本设置为输出 目录选项复制(如果较新)。 如果添加任何新的PS脚本,则需要重复这些步骤以添加链接


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

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