Tôi hiện đang xem xét việc sửa đổi lại hệ thống triển khai cùng nhau của chúng tôi với một thứ gì đó thanh lịch hơn - Octopus. Trong khi làm như vậy, tôi đang cố gắng để có được VS để đóng gói lên một dự án khi một bản phát hành xây dựng được chạy. Vâng, tôi có kịch bản PowerShell ưa thích này được viết và làm việc, nhưng khi tôi thử EXEC từ tập lệnh msbuild, studio trực quan chỉ bị treo!Exec powershell.exe treo msbuild
Lúc đầu, tôi nghi ngờ cách thức công cụ đã được thoát trong vỏ, nhưng tôi đơn giản hóa nó một cách ridiculously, và nó vẫn đóng băng.
Dưới đây là đoạn code MSBuild liên quan:
<PropertyGroup>
<PowerShellExe Condition=" '$(PowerShellExe)'=='' ">
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe
</PowerShellExe>
</PropertyGroup>
<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Exec Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted -command get-childitem" />
</Target>
Tất cả những gì cần làm là đưa ra một danh sách thư mục. Kêu gọi này từ cmd.exe hoạt động tốt:
C:\Users\smithj>%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -executionpolicy unrestricted -command dir
Cố gắng này:
msbuild Solution.sln /p:Configuration=Release
Gets tôi đây:
AfterBuild:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\tf.exe" che
ckout Package.nuspec
Package.nuspec
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe
-NonInteractive -executionpolicy Unrestricted -command dir
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
Sau đó, nó chỉ bị treo mãi mãi. Mọi đề xuất đều được chào đón.
Vâng, tôi chắc chắn không thấy điều đó đến. Bạn hoàn toàn đúng. giống như dòng mới trong thuộc tính lệnh hoặc Dù sao, bạn nhấn móng trên đầu.Tôi đã dành hàng giờ trên này .. Nó luôn luôn là một cái gì đó ngu ngốc cuối cùng :) Cảm ơn bạn rất nhiều! – monkeybuffer
np niềm vui của tôi. –
Tôi đã chiến đấu với điều này trong nhiều giờ. Tôi muốn có một câu trả lời tốt hơn chỉ là "không đặt ngắt dòng trong tập tin msbuild." Tôi tự hỏi nếu một dấu chấm phẩy thêm hoặc một cái gì đó cuối cùng sẽ có được xung quanh này? Về cơ bản, tôi nghĩ rằng nó đang chờ đợi trên dòng chấm dứt được nhập giống như trong PowerShell khi bạn span nhiều dòng với ngắt dòng bạn phải đặt thêm một ở cuối. Dù bằng cách nào, những gì một sự nhẹ nhõm mà tôi có thể ít nhất là làm việc xung quanh này. Tôi ghét quay bánh xe của tôi trên loại công cụ này. – EdFred