2012-05-09 12 views
13

फायरिंग नहीं मैं कर रहा हूँ निम्नलिखित:पहले और दृश्य स्टूडियो में AfterBuild लक्ष्य

  • मैं एक डिफ़ॉल्ट वर्ग फ़ाइल परियोजना
  • संपादित csproj फ़ाइल से पहले और बाद BuildEvents
  • टिप्पणी हटाएं शामिल करने के लिए बनाया है डिफॉल्ट बिल्डिंग और आफ्टरबिल्ड लक्ष्य

विजुअल स्टूडियो के भीतर पहले सेल्ड और आफ्टरबिल्ड लक्ष्य को फॉर्म नहीं कहा जाता है लेकिन एमएसबिल्ड कमांड लाइन से हैं, वह क्यों है?

मैं PostBuildEvent की बजाय एमएसबिल्ड लक्ष्य का उपयोग करता हूं, क्योंकि यह मुझे लगता है कि यह काम करता है और मुझे अधिक शक्ति और लचीलापन देता है।

चीयर्स,

एडम

मैं उत्पादन में रास्तों में से कुछ छोटा है, इसलिए यदि वे असंगत हैं है यही कारण है कि


ClassLibrary1.csproj बदलता है

अपने निर्माण उत्पादन VS 2010 से

------ Rebuild All started: Project: ClassLibrary1, Configuration: Debug Any CPU ------ 
PRE_BUILD 
ClassLibrary1 -> c:\ClassLibrary1\bin\Debug\ClassLibrary1.dll 
POST_BUILD 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

है और कमांड लाइन से

#>msbuild ClassLibrary1.sln 
Microsoft (R) Build Engine Version 4.0.30319.1 
[Microsoft .NET Framework, Version 4.0.30319.239] 
Copyright (C) Microsoft Corporation 2007. All rights reserved. 

Build started 09/05/2012 13:27:42. 
Project "c:.sln" on node 1 (default targets). 
ValidateSolutionConfiguration: 
    Building solution configuration "Debug|Any CPU". 
Project "c:.sln" (1) is building "c:\ClassLibrary1.csproj" (2) on node 1 (default targets). 
    BeforeBuild: 
     ### BeforeBuild ### 
PreBuildEvent: 
    echo PRE_BUILD 
    PRE_BUILD 
GenerateTargetFrameworkMonikerAttribute: 
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files. 
CoreCompile: 
Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files. 
CopyFilesToOutputDirectory: 
    ClassLibrary1 -> c:\bin\Debug\ClassLibrary1.dll 
PostBuildEvent: 
    echo POST_BUILD 
    POST_BUILD 
AfterBuild: 
    ### AfterBuild ### 
Done Building Project "c:\ClassLibrary1.csproj" (default targets). 

Done Building Project "c:.sln" (default targets). 

Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:00.18 

उत्तर

44

आपका निर्माण घटनाओं सक्रिय हो रहे हैं, तो आप सिर्फ दृश्य स्टूडियो में उन्हें नहीं देख रहे हैं।

डिफ़ॉल्ट रूप से वीएस msbuild verbosity minimal पर सेट करता है। आप अपने संदेश high

<Target Name="BeforeBuild"> 
    <Message Text="### BeforeBuild ###" Importance="high" /> 
</Target> 
<Target Name="AfterBuild"> 
    <Message Text="### AfterBuild ###" Importance="high" /> 
</Target> 

को संदेश महत्व बदलकर दिखाने के लिए प्राप्त कर सकते हैं तुम भी शब्दाडंबर उपकरण के तहत वी.एस. में सेटिंग बदल सकते हैं> विकल्प तो परियोजनाओं और Solutions- के तहत> निर्माण और भागो।

+0

धन्यवाद अंत में होना चाहिए है, मैं परीक्षण के स्तर पर ही था कि चीजें वास्तविक काम मैं था पर जाने से पहले काम किया ऐसा करने के लिए उम्मीद कर रहा। मैं डिफ़ॉल्ट शब्दाडंबर को बदलने को देखेंगे –

2

दूसरों बस के लिए मदद, जब वे समान समस्या आ लेकिन कारण अलग हो सकता है। आप लक्ष्य के बाद आयात है तो भी AfterBuild काम न करें।

सुनिश्चित करें कि सभी आयात आप लक्ष्य परिभाषा से पहले किया जाना चाहिए, लक्ष्य परिभाषा

संबंधित मुद्दे