Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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# MSBuild在从PowerShell脚本调用时使用.sln,但在从命令行调用时使用.csproj_C#_Asp.net_Powershell_Msbuild - Fatal编程技术网

C# MSBuild在从PowerShell脚本调用时使用.sln,但在从命令行调用时使用.csproj

C# MSBuild在从PowerShell脚本调用时使用.sln,但在从命令行调用时使用.csproj,c#,asp.net,powershell,msbuild,C#,Asp.net,Powershell,Msbuild,我在这件事上挠了一阵子脑袋,似乎什么也找不到。我正在尝试执行以下操作: C:\Windows\Microsoft.NET\Framework\v3.5\MsBuild.exe D:\SourceFiles\Testing\AppaloosaDotNet\AppaloosaDotNet\AppaloosaDotNet.csproj/t:\u CopyWebApplication;解析参考文献;发布/p:ReferencePath=D:\Builds\Testing\LatestBuild\/p:O

我在这件事上挠了一阵子脑袋,似乎什么也找不到。我正在尝试执行以下操作:

C:\Windows\Microsoft.NET\Framework\v3.5\MsBuild.exe D:\SourceFiles\Testing\AppaloosaDotNet\AppaloosaDotNet\AppaloosaDotNet.csproj/t:\u CopyWebApplication;解析参考文献;发布/p:ReferencePath=D:\Builds\Testing\LatestBuild\/p:OutDir=\\ServerName\D$\WebContent\AppaloosaDotNET\bin\/p:WebProjectOutputDir=\\ServerName\D$\WebContent\AppaloosaDotNET\

如果我直接在PowerShell提示符中键入此命令,它可以正常工作。但是,我创建了一个PowerShell脚本,该脚本为我执行此调用。当脚本执行时,MSBuild将向上移动一个文件夹,并使用解决方案文件.sln来生成项目。这会导致问题,因为在解决方案文件中找不到目标

如果我手动键入命令并执行它,MSBuild将打印出它正在生成D:\SourceFiles\Testing\AppaloosaDotNET\AppaloosaDotNET\AppaloosaDotNET.csproj,并且生成正常

但是,如果我运行脚本MSBuild打印输出,则它正在生成D:\SourceFiles\Testing\AppaloosaDotNET\AppaloosaDotNET.sln,然后生成失败,因为找不到目标


我肯定我的剧本中有什么地方做错了,但我想不出是什么地方。我仔细检查了脚本执行的命令是否与我键入的相同。我甚至复制了在运行脚本时运行的命令,并在提示符处粘贴,它运行良好,因此我非常确定这些命令是相同的。有什么想法吗?

您的脚本是否与解决方案位于同一路径? 如果脚本与解决方案不在同一路径上,那么脚本的具体运行方式和驻留位置如何?
可能什么都没有,但让我们确认一下。

只是一个更新。我开始对脚本有更多的问题,但最终找到了解决方案。我在脚本中使用字符串变量构建命令行。最初,脚本使用&操作符执行命令。最后,我使用了Invoke Expression命令,问题得到了解决。

当我看到D$\``时,只是一个不相关的注释-您确定PowerShell没有尝试将$`扩展为变量吗?我将脚本移动到了与.csproj文件相同的文件夹中,并使用.sln文件解决了MSBuild的问题。我从来没有想到过。我不是PowerShell专家。这是正常的行为吗?说到这里,我现在收到一条信息,说跳过不可发布的项目。但至少我在进步。谢谢你的建议。发布一个脚本和脚本修复。