2012-09-19 30 views
22

मैं अपनी परियोजना को संकलित करने के लिए एक स्क्रिप्ट से एमएसबिल्ड का उपयोग कर रहा हूं। मैंने देखा है कि यह सिर्फ एक बिल्ड बनाता है और साफ/पुनर्निर्माण नहीं करता है।मैं एमएसबिल्ड को साफ या पुनर्निर्माण के लिए कैसे मजबूर करूं?

मैं निम्नलिखित है:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0"> 
<Target Name="Build"> 
    <MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" Targets="Build" Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 
</Target> 

मैं कैसे एक साफ मजबूर है/पुनर्निर्माण?

उत्तर

29

बदलें

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Clean;Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

या

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" Targets="Rebuild" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

अधिक जानकारी के लिए, करने के लिए MSBuild Task documentation को देखो।

+0

जब आप उत्तर देखते हैं तो स्पष्ट लगता है। क्या प्रोब को वह मिलना चाहिए। उत्तर के लिए धन्यवाद – John

+0

नए _csproj_ के बारे में कैसे? – Shimmy

15

"% windir% \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319 \ MSBuild" Project.sln /p: विन्यास = रिलीज/टी: पुनर्निर्माण

+0

प्रश्न में, msbuild का उपयोग प्रोजेक्ट फ़ाइल में किया जाता है। कमांड प्रॉम्प्ट में सीधे नहीं। – warunapww

+0

प्रश्न में "मैं अपनी प्रोजेक्ट को संकलित करने के लिए एक स्क्रिप्ट से msbuild का उपयोग कर रहा हूं" एक स्क्रिप्ट से बेहतर कमांड प्रॉम्प्ट – Geograph

+0

चाहे मूल प्रश्न का उत्तर दें या नहीं, स्निपेट ने मुझे यह जानने में मदद की कि मुझे कहां जाना है .. धन्यवाद! – madannes

1

हमेशा उपयोग करने का प्रयास

<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" 
    Targets="Clean;Build" 
    Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" /> 

क्योंकि this MSDN article के अनुसार, जब आपके लक्ष्य में "पुनर्निर्माण" का उपयोग करके आपके समाधान में कई प्रोजेक्ट हैं, तो समानांतर तरीके से साफ और निर्माण हो सकता है। जो परियोजना निर्भरताओं में समस्याएं पैदा कर सकता है।

लेकिन जब आप लक्ष्य के रूप में "स्वच्छ और बिल्ड" का उपयोग करते हैं, तो निर्माण केवल सभी परियोजनाओं को साफ करने के बाद ही शुरू होगा।