2012-01-08 43 views
5

Tôi đang cố gắng thực hiện cả bản phát hành Bản phát hành và Gỡ lỗi trên .Net v4.0, nơi tôi có tệp dự án MSBuild chứ không phải tệp giải pháp. Tôi muốn sử dụng cùng một tệp dự án xây dựng, nhưng chỉ ghi đè lên chuyển đổi thuộc tính Cấu hình giữa "Gỡ lỗi" và "Phát hành".Làm cách nào để ghi đè thuộc tính cấu hình?

Khi tôi thực hiện như sau

c:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe buildinv.proj 
/target:rebuild "/property:Configuration=Debug" /verbosity:Diagnostic 

tôi nhận được lỗi sau

c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): 
error : The OutputPath property is not set for project 
'buildinv.proj'. Please check to make sure that you have specified a 
valid combination of Configuration and Platform for this project. 
Configuration='Debug' Platform=''. 

tôi có thể thấy rằng các lỗi xảy ra trong _CheckForInvalidConfigurationAndPlatform.

Nếu tôi vượt qua một tài sản OutputPath nó sẽ làm việc tuy nhiên

c:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe buildinv.proj 
/target:rebuild "/property:Configuration=Debug" "/property:OutputPath=." 

Đây có phải là một lỗi được biết? Nơi tôi cần phải ghi đè lên các tài sản cấu hình tôi sẽ bị buộc phải ghi đè lên các tài sản OutputPath mặc dù tôi không muốn.

Xin cảm ơn trước.

+0

Bạn đã quản lý để tìm một khoảng cách này? Tôi đang ngồi với cùng một vấn đề, khi giải pháp của tôi gọi 19 tệp dự án, và tất cả chúng đều mặc định là Debug anycpu, mặc dù tôi đang thiết lập nó để giải phóng trên giải pháp –

Trả lời

4

Trong tệp dự án của tôi thuộc tính OutputPath được xác định trong các nhóm thuộc tính được chỉ định cho mọi Nền tảng cấu hình &. Nếu bạn không đặt Nền tảng đúng, thuộc tính OutputPath không được đặt và bản dựng của bạn sẽ không thành công.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <OutputPath>bin\Debug\</OutputPath> 
</PropertyGroup> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>bin\Release\</OutputPath> 
</PropertyGroup> 

Add tài sản vBulletin vào dòng lệnh của bạn:

c:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe buildinv.proj /target:rebuild "/property:Configuration=Debug;Platform=AnyCPU" /verbosity:Diagnostic 
+0

Tôi đã thử nhưng vẫn gặp lỗi tương tự. Bởi không đi qua các cấu hình hoặc nền tảng tôi tin tưởng nó mặc định trở lại Debug và AnyCPU tương ứng cho các dự án được tạo ra với VS – pmcgrath

+0

Ông đang sử dụng MSBuild từ dòng lệnh. Anh ta không sửa đổi các tệp dự án trong một trình soạn thảo văn bản. – jww

1

Thêm một trong những dòng sau vào file dự án của bạn. Lỗi có nghĩa là OutputPath biến môi trường không nhận được giá trị của nó. Bằng cách xóa "Điều kiện =" khỏi PropertyGroup, OutputPath sẽ luôn được đặt cho bất kỳ nền tảng hoặc cấu hình nào theo mặc định.

<PropertyGroup> 
    <OutputPath>bin\Debug\</OutputPath> 
</PropertyGroup> 

<PropertyGroup> 
    <OutputPath>$(DefaultOutputDirectory)</OutputPath> 
</PropertyGroup> 
2

Nếu bạn không muốn thay đổi hồ sơ dự án, bạn cũng có thể chỉ định các OutputPath cho xây dựng trong lệnh của bạn:

c:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe buildinv.proj /target:rebuild "/property:Configuration=Debug;OutputPath=C:\MyOutputPath" /verbosity:Diagnostic 
Các vấn đề liên quan