දෘශ්ය චිත්රාගාරයේ බිල්ඩ් සොලියුෂන්, නැවත ගොඩනැඟීමේ විසඳුම සහ පිරිසිදු විසඳුම අතර වෙනස කුමක්ද?
මේ සෑම එකක්ම භාවිතා කිරීමට සුදුසු කාලය කවදාද?
දෘශ්ය චිත්රාගාරයේ බිල්ඩ් සොලියුෂන්, නැවත ගොඩනැඟීමේ විසඳුම සහ පිරිසිදු විසඳුම අතර වෙනස කුමක්ද?
මේ සෑම එකක්ම භාවිතා කිරීමට සුදුසු කාලය කවදාද?
Answers:
(සබැඳි devenv.exe විධාන රේඛා ස්විචයන් වෙත ඇත, නමුත් ඒවා මෙනු අයිතම වලට සමාන වේ.)
.gitignore
ගොනුවක් තිබීම සරල ය . නමුත් පිළිතුරට අනුව, ක්ලීන් සෑම විටම මගේ අත්දැකීම් අනුව විශේෂයෙන් ගැඹුරු කාර්යයක් නොකරයි.
බිල්ඩ් විසඳුම: වෙනස් කරන ලද කේත ගොනු (DLL සහ EXE) සම්පාදනය කරයි.
නැවත ගොඩනඟන්න: කේතය වෙනස් වී තිබේද නැද්ද යන්න නොසලකා සියලු සම්පාදනය කරන ලද ගොනු මකා දමා නැවත සම්පාදනය කරයි.
පිරිසිදු විසඳුම: සම්පාදනය කරන ලද සියලුම ගොනු මකා දමයි (DLL සහ EXE ගොනුව).
මෙම යූ ටියුබ් වීඩියෝව ඔබට දැක ගත හැකිය ( විෂුවල් ස්ටුඩියෝ බිල්ඩ් එදිරිව නැවත ගොඩනඟන්න. පිරිසිදු (සී # සම්මුඛ පරීක්ෂණ ප්රශ්න සමඟ පිළිතුරු) ) එහිදී මම වෙනස්කම් පෙන්නුම් කර ඇති අතර පහත දැක්වෙන්නේ දෘශ්ය නිරූපණයන් වන අතර එය වඩාත් විස්තරාත්මකව විශ්ලේෂණය කිරීමට ඔබට උපකාරී වනු ඇත.
ප්රතිනිර්මාණය එදිරිව (පිරිසිදු + ගොඩනැගීම) අතර වෙනස, මන්දයත් මේ වටා යම් ව්යාකූලත්වයක් ඇති බව පෙනේ:
වෙනස වන්නේ සෑම ව්යාපෘතියක් සඳහාම ගොඩනැගීම සහ පිරිසිදු අනුක්රමය සිදුවන ආකාරයයි. ඔබේ විසඳුමට “proj1” සහ “proj2” යන ව්යාපෘති දෙකක් ඇති බව කියමු. ඔබ නැවත ගොඩනැඟීමක් කළහොත් එයට “proj1” අවශ්ය වේ, “proj1” සඳහා සම්පාදනය කරන ලද ගොනු පිරිසිදු කර මකා දමන්න. ඉන්පසු එය දෙවන ව්යාපෘතිය වන “proj2”, “proj2” සඳහා සම්පාදිත ගොනු පිරිසිදු කර “proj2” සම්පාදනය කරනු ඇත.
නමුත් ඔබ “පිරිසිදු” කර ගොඩනඟන්නේ නම්, එය පළමුව “proj1” සහ “proj2” සඳහා සම්පාදනය කරන ලද සියලුම ගොනු මකා දමනු ඇති අතර පසුව එය “proj1” පසුව “proj2” සාදනු ඇත.
සිට ගෙන , මෙම සබැඳිය :
බිල්ඩ් යන්නෙන් අදහස් කරන්නේ අවසන් වරට සෑදී ඇති දින සිට වෙනස් වී ඇති ප්රභව ගොනු පමණක් සම්පාදනය කිරීම හා සම්බන්ධ කිරීම ය. ගොඩනැගීම සාමාන්ය දෙයක් වන අතර එය වේගවත්ය. සමහර විට ව්යාපෘති ඉලක්ක සංරචක වල අනුවාදයන් සමමුහුර්තතාවයෙන් මිදිය හැකි අතර ගොඩනැගීම සාර්ථක කර ගැනීම සඳහා නැවත ගොඩනැඟීම අවශ්ය වේ. ප්රායෝගිකව, ඔබ කිසි විටෙකත් පිරිසිදු කිරීමට අවශ්ය නොවේ.
බිල්ඩ් විසඳුම - ලිපිගොනු වෙනස් කර ඇති ඕනෑම එකලස් කිරීමක් සාදයි. එක්රැස්වීමක කිසිදු වෙනසක් නොමැති නම්, එය නැවත ගොඩනඟන්නේ නැත. එසේම අතරමැදි ලිපිගොනු මකා නොදමනු ඇත.
බහුලව භාවිතා වේ.
විසඳුම නැවත ගොඩනඟන්න - වෙනස්කම් නොසලකා සියලු එකලස් කිරීම් නැවත ගොඩනඟන නමුත් අතරමැදි ලිපිගොනු තබයි.
විෂුවල් ස්ටුඩියෝ නවතම එකලස් කිරීමේදී ඔබගේ වෙනස්කම් ඇතුළත් කර නොමැති බව ඔබ දුටු විට භාවිතා වේ. සමහර විට විෂුවල් ස්ටුඩියෝ වැරදි කරයි.
පිරිසිදු විසඳුම - සියලු අතරමැදි ගොනු මකන්න.
අනෙක් සියල්ල අසමත් වූ විට භාවිතා වන අතර ඔබ සියල්ල පිරිසිදු කර නැවුම් ලෙස ආරම්භ කළ යුතුය.
මම හිතන්නේ නැවත ගොඩනැඟීම පළමුව පිරිසිදු කිරීම හා පසුව ගොඩනැගීම සිදු කරයි. සමහර විට මම වැරදියි ... අදහස්?
file reference
වෙනුවට ඔබේ විසඳුමෙහි ව්යාපෘතියක් එක් කිරීම නිසා විය හැකිය, project reference
එබැවින් ව්යාපෘති ගොඩනැඟීමේ නියෝගය එය වෙනත් ව්යාපෘතියක් ඉදිරියේ යම් ව්යාපෘතියක් ගොඩනගා ගත යුතු බව හඳුනා නොගත් අතර එකලස් කිරීම තිබිය යුතු තැන නොතිබුණි. ගොඩනඟන්න?
බිල්ඩ් විසඳුම - ලිපිගොනු වෙනස් කර ඇති ඕනෑම එකලස් කිරීමක් සාදයි. එක්රැස්වීමක කිසිදු වෙනසක් නොමැති නම්, එය නැවත ගොඩනඟන්නේ නැත. එසේම අතරමැදි ලිපිගොනු මකා නොදමනු ඇත.
නැවත ගොඩනඟන විසඳුම පිරිසිදු කර පසුව මුල සිටම විසඳුම ගොඩනගනු ඇත
පිරිසිදු විසඳුම මඟින් සම්පාදනය කරන ලද සියලුම ගොනු (එනම්, EXE සහ DLL) බින් / ඕබ් නාමාවලියෙන් මකා දමනු ඇත.
බිල්ඩ් විසඳුම වෙනස් වී ඇති විසඳුමේ ඕනෑම ව්යාපෘතියක් ගොඩනගනු ඇත. කුමක් වුවත්, සියලු ව්යාපෘති නැවත ගොඩනඟන්න, පිරිසිදු විසඳුම මඟින් සියලු තාවකාලික ලිපිගොනු ඉවත් කර ඊළඟ ගොඩනැගීම සම්පූර්ණ බව සහතික කරයි.
බිල්ඩ් විසඳුම - බිල්ඩ් විසඳුම මඟින් ඕනෑම ගොනු වෙනසක් ඇති ව්යාපෘති ගණන ගොඩනැගීම සමඟ ඔබේ යෙදුම ගොඩනගනු ඇත. තවද එය දැනට පවතින ද්විමය ලිපිගොනු ඉවත් නොකරන අතර යාවත්කාලීන එකලස් බින් හෝ ඕබ් ෆෝල්ඩරයේ ප්රතිස්ථාපනය කරයි.
නැවත විසඳුම - විසඳුමක් සියලු ව්යාපෘති ඔවුන් පිරිසිදු සමඟ ඔබේ විසඳුමක් ලබා ගත හැක ගොඩනැගීම, ඔබගේ මුළු අයදුම්පත ගොඩනඟන්නේ නැවත. එය තැනීමට පෙර සියලු ද්විමය ගොනු බින් සහ ඕබ් ෆෝල්ඩරයෙන් ඉවත් කරයි.
පිරිසිදු විසඳුම - පිරිසිදු විසඳුම යනු ද්විමය ලිපිගොනු බින් සහ ඕබ් ෆෝල්ඩරයෙන් ඉවත් කිරීමයි.
විසඳුමක් ගොඩනඟන්න
මෙය වර්ධක ගොඩනැගීමක් සිදු කරනු ඇත. වෙනත් වචන වලින් කිවහොත් එය සෑදී ඇත්තේ වෙනස් වූ කේත ගොනු පමණි. ඒවා වෙනස් කර නොමැති නම් එම ලිපිගොනු ස්පර්ශ නොකරනු ඇත.
විසඳුම නැවත ගොඩනඟන්න
මෙය දැනට සම්පාදනය කර ඇති සියලුම ලිපිගොනු (එනම්, exe සහ DLLs) මකා දමනු ඇති අතර ගොනුවේ කේත වෙනසක් තිබේද නැද්ද යන්න නොසලකා මුල සිටම සියල්ල ගොඩනගනු ඇත.
පිරිසිදු විසඳුම් මෙනුව
මෙම මෙනුව මඟින් සම්පාදනය කරන ලද සියලුම ගොනු (එනම්, EXE සහ DLL) බින් / ඕබ් නාමාවලියෙන් මකා දමනු ඇත.
නැවත ගොඩනඟන්න = පිරිසිදු + ගොඩනැගීම
මිනිසුන් අතහැර යන එක් ප්රධාන දෙයක් නම්, ඔබේ ව්යාපෘතිය / විසඳුම පිළිබඳ විෂුවල් ස්ටුඩියෝගේ දැනුම මත පදනම්ව ගොඩනංවන සහ පිරිසිදු කරන කාර්යයන් දෙකම ඉටු කිරීමයි. පිරිසිදු වැඩ නොකරන බව හෝ ඉතිරි ලිපිගොනු අතහැර දැමීම හෝ විශ්වාසදායක නොවන බවට බොහෝ පැමිණිලි මම දකිමි, ඇත්ත වශයෙන්ම, එය විශ්වාසදායක නොවන බව ඔබ පවසන හේතු ඇත්ත වශයෙන්ම එය වඩා විශ්වාසදායකය.
පිරිසිදු කිරීම මඟින් විෂුවල් ස්ටුඩියෝ හෝ සම්පාදකයා විසින්ම නිර්මාණය කර ඇති (පිරිසිදු) ලිපිගොනු සහ / හෝ නාමාවලි පමණක් ඉවත් කරනු ඇත. ඔබ ඔබේම ලිපිගොනු හෝ ලිපිගොනු / ෆෝල්ඩර ව්යුහයන් බාහිර මෙවලමකින් හෝ ප්රභවයකින් නිර්මාණය කරන්නේ නම්, දෘශ්ය චිත්රාගාරය "ඒවා පවතින බව නොදනී" සහ එබැවින් ඒවා ස්පර්ශ නොකළ යුතුය.
පිරිසිදු මෙහෙයුම මූලික වශයෙන් "ඩෙල් *. *" සිදු කළේදැයි ඔබට සිතාගත හැකිද? මෙය ව්යසනකාරී විය හැකිය.
බිල්ඩ් විසින් වෙනස් කරන ලද හෝ අවශ්ය ව්යාපෘති සඳහා සම්පාදනයක් සිදු කරයි.
වෙනස් කිරීම හෝ අවශ්ය දේ නොසලකා නැවත ගොඩනැඟීම සම්පාදනය කරයි.
පිරිසිදු එය අතීතයේ නිර්මාණය කළ ලිපිගොනු / ෆෝල්ඩර ඉවත් කරයි, නමුත් මුලදී එයට කිසිම සම්බන්ධයක් නැති කිසිවක් ඉතිරි කරයි.
මෙය ටිකක් විස්තාරණය කර උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
මම aa හිස් විසඳුමක් ඇති BuildRebuildClean
හා පන්ති තුනක් පුස්තකාල Models
, Repository
, Notification
.
මම භාවිතා Models
සහ Repository
තුළ Notification
පන්ති පුස්තකාලය.
ඉන්පසු:
Models
පුස්තකාල ව්යාපෘතියේ යම් කේතයක් වෙනස් කරන්නේ නම් , BUILD විසඳුම. පහත රූප සටහනෙන් දී, dll කාලය මුද්දර වෙත යොමුවන්න EXE යාවත්කාලීන වන Models
හා Notification
පුස්තකාල.BuildRebuildClean
. එය කරන්නේ නැවත එක්රැස් කිරීම සඳහා සියලු එකලස් කිරීම්, EXEs සහ යොමු කරන ලද ගොනු මකා දැමීමයි.මා දන්නා දෙය නම් පිරිසිදු කිරීම යනු “පිරිසිදු කිරීම” සඳහා භාවිතා කරන දෙය නොවේ - මම විසඳුමක් පිරිසිදු කරන්නේ නම් එය අපේක්ෂා කරන්නේ එය ඕබ් සහ බින් ලිපිගොනු / ෆෝල්ඩර මකා දැමිය හැකි බවයි. මගේ අත්දැකීම් අනුව, පිරිසිදු කිරීම සහ ගොඩ නැගීම හෝ නැවත ගොඩනැඟීම තවමත් සම්පාදනය කිරීමට දන්නා ප්රභවයේ අමුතු දෝෂ ඇති කරන අතර අවශ්ය වන්නේ බින් / ඕබ් ෆෝල්ඩර අතින් මකා දැමීමයි, එවිට එය ගොඩනැඟෙනු ඇත.
බිල්ඩ් විසඳුම ගොඩනගන්නේ විසඳුමේ වෙනස් වී ඇති ව්යාපෘති පමණක් වන අතර වෙනස් වී නැති එකලස් කිරීම් වලට බලපෑමක් නොකරයි,
නැවත ගොඩනඟන්න මුලින්ම සියලු එකලස් කිරීම් ද්රාවණයෙන් පිරිසිදු කර පසුව සිදුකරන ලද වෙනස්කම් නොසලකා සම්පූර්ණ විසඳුමම සාදයි.
පිරිසිදු, සරලව විසඳුම පිරිසිදු කරයි.
මෙය "බිල්ඩ් විසඳුම" විකල්පය සම්බන්ධයෙන් පමණි.
විෂුවල් ස්ටුඩියෝවට සැබවින්ම පිරිසිදු විසඳුම් ලබා දීමට ඇති නොහැකියාවෙන් මම මුළුමනින්ම වෙහෙසට පත් වූ අතර මෙම කුඩා මෙවලම ලියා එය ඔබ වෙනුවෙන් කරනු ඇත.
පළමුවෙන්ම VS හි ඔබේ විසඳුම වසා වින්ඩෝස් එක්ස්ප්ලෝරර් වෙතින් එහි ෆෝල්ඩරය මෙම යෙදුමට හෝ එහි නිරූපකයට ඇදගෙන යන්න. එහි කවුළුවේ පතුලේ ඇති සැකසුම මත පදනම්ව, එයට අමතර දේවල් ඉවත් කළ හැකිය, එය ඔබගේ විසඳුම GitHub වෙත අතින් උඩුගත කිරීමට හෝ වෙනත් කෙනෙකු සමඟ බෙදා ගැනීමට උත්සාහ කළහොත් එය උපකාරී වේ:
කෙටියෙන් කිවහොත්, එය VS විසින් ප්රතිනිර්මාණය කළ හැකි සියලුම "දෝශ නිරාකරණ" ෆෝල්ඩර, ඉන්ටෙලිසෙන්ස් සහ වෙනත් හැඹිලි ඔබ වෙනුවෙන් ප්රතිචක්රීකරණ බඳුනට දමනු ඇත.