मैं एमएसबिल्ड के लिए एक नया हूं और इसके साथ थोड़ा सा खेलना चाहता था, लेकिन मैं यह नहीं समझ सकता कि यह क्यों काम नहीं कर रहा है।उसी समाधान से कस्टम MSBuild कार्यों का उपयोग करें?
तो मेरे समाधान में दो परियोजनाएं हैं: "मॉडल" और "बिल्डटास्क"।
using Microsoft.Build.Utilities;
namespace BuildTasks
{
public class Test : Task
{
public override bool Execute()
{
Log.LogMessage("FASDfasdf");
return true;
}
}
}
और फिर Model.csproj में मैं इस जोड़ दिया है:
<UsingTask TaskName="BuildTasks.Test" AssemblyFile="$(SolutionDir)src\BuildTasks\bin\BuildTasks.dll" />
<Target Name="AfterBuild">
<Test />
</Target>
मैं इतना "BuildTasks" निर्माण के क्रम को सेट कर लेने से पहले "का निर्माण किया जाता है BuildTasks बस एक ही वर्ग है आदर्श"। लेकिन जब मैं मॉडल बनाने की कोशिश मैं इस त्रुटि मिलती है:
The "BuildTasks.Test" task could not be loaded from the assembly C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll. Could not load file or assembly 'file:///C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, and that the assembly and all its dependencies are available.
इस फ़ाइल में निश्चित रूप से मौजूद है, तो क्यों MSBuild यह नहीं मिल सकता है?
मैंने "$ (SolutionDir)" के स्थान पर "सी: \ WIP \ TestSolution" हार्ड कोडिंग करने का भी प्रयास किया है और एक ही त्रुटि प्राप्त की है। हालांकि, अगर मैं अपने डेस्कटॉप पर .dll कॉपी करता हूं और हार्ड-कोड को अपने डेस्कटॉप पर पथ करता हूं, तो यह करता है काम, जिसे मैं समझ नहीं सकता।
संपादित करें: मेरे पास पथ गलत नहीं है। मैंने बिल्डबस्क के लिए डीबग/रिलीज बिल्ड को संशोधित करने के लिए .dll को बस बिन फ़ोल्डर में आउटपुट करने के लिए संशोधित किया क्योंकि मैं डीबग/रिलीज को अलग-अलग पथ नहीं चाहता था।
क्या आपने समस्या को हल करने का प्रबंधन किया था? मुझे भी वही समस्या हो रही है। – sean
एक संकल्प के बिना 3 साल? मुझे यह समस्या है लेकिन यह पोस्ट थोड़ा सा मदद नहीं करता है क्योंकि यह स्पष्ट नहीं है कि समस्या कभी हल हो गई है ... – DaveN59