2013-06-26 46 views
10

Tôi đang đóng gói một ứng dụng sử dụng Cruise Control, lệnh là như thế nàynhân vật trái phép trên đường đi cho gói NuGet

<Exec Command="$(NugetToolPath) pack &quot;@(NuSpecs)&quot; -OutputDirectory \\servername\PackageSource -BasePath &quot;%(NuSpecs.RootDir)%(NuSpecs.Directory)&quot; -NoPackageAnalysis" /> 

Iv'e thu hẹp các lỗi là BasePath nói ra như

-BasePath "D:\Code\Mobile_Trunk\PreCompiledWeb\Portal\Mobile LT Admin\" 

tôi biết vấn đề này bởi vì nó phải được

-BasePath "D:\Code\Mobile_Trunk\PreCompiledWeb\Portal\Mobile LT Admin" 

nhưng vì tôi đang sử dụng siêu dữ liệu .Directory nó wil Tôi luôn quay trở lại với một \ ở cuối

Tôi thường không báo giá đường dẫn cơ bản, nhưng vì có không gian trong thư mục nên tôi không có lựa chọn nào khác. Có cách nào để giái quyết vấn đề này không? Tôi không biết bất kỳ siêu dữ liệu khác mà sẽ trở lại thư mục strucutre toàn khác so với cách tôi đã xếp chồng nó ra

UPDATE:

tôi đến giải pháp này, nó vẫn không giúp hiểu biết của tôi về cách để có được xung quanh vấn đề với con đường bất hợp pháp, nhưng nó hoạt động.

<Exec Command="$(NugetToolPath) pack &quot;%(NuSpecs.RootDir)%(NuSpecs.Directory)%(Nuspecs.FileName).nuspec&quot; -OutputDirectory \\servername\PackageSource -NoPackageAnalysis" /> 
+0

Có phải vì có không gian trong đường dẫn không? Bạn có cần phải thoát khỏi điều đó? –

+1

đường dẫn cần phải được đặt cách nhau, nếu không có \ ở cuối của -BasePath nó sẽ đóng gói ứng dụng tốt, tôi cần một cách để loại bỏ \ ở phần cuối của kết quả siêu dữ liệu .directory – Lewis

Trả lời

17

Chỉ cần chèn một khoảng trắng sau các thư mục và trước khi nhân vật quote:

-OutputDirectory "\\servername\PackageSource\ " 

Xem câu trả lời được chấp nhận ở đây (các câu hỏi riêng của mình không có liên quan nhưng câu trả lời là):

How to accept command-line args ending in backslash

Tham chiếu hấp dẫn này cũng được liên kết với một câu trả lời khác cho câu hỏi đó:
http://www.daviddeley.com/autohotkey/parameters/parameters.htm#WINCRULESDOC

Các vấn đề liên quan