我已经在这个问题上摸不着头脑,似乎找不到任何东西。我正在尝试执行以下操作:
C:\ Windows \ Microsoft.NET \ Framework \ v3.5 \ MsBuild.exe D:\ SourceFiles \ Testing \ AppaloosaDotNet \ AppaloosaDotNet \ AppaloosaDotNet.csproj“/ t:_CopyWebApplication; ResolveReferences; publish”/ 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然后构建失败,因为找不到目标。
我确定我的脚本出错了,但无法弄清楚是什么。我仔细检查过,看到脚本执行的命令与我键入的命令相同。我甚至复制了运行脚本时运行的命令,并在提示符下粘贴它运行正常,所以我很确定命令是一样的。有什么想法吗?
答案 0 :(得分:2)
您的脚本可以与解决方案位于同一路径吗? 你是如何运行你的脚本以及它驻留在哪里(如果它与解决方案不在同一条路径上)? 它可能只是让我们确认一下。
答案 1 :(得分:-3)
只是一个更新。我开始有更多的脚本问题,但最终找到了解决方案。我在脚本中使用字符串变量构建命令行。最初,脚本使用&正在执行命令。运营商。我最终使用了Invoke-Expression命令,问题解决了。