मेरे समाधान में कई c# क्लास लाइब्रेरी (डॉटनेट कोर 2.1) प्रोजेक्ट और यूजर इंटरफेस (WPF प्रोजेक्ट) हैं।

मान लें कि क्लास लाइब्रेरी प्रोजेक्ट प्रॉपर्टीज में असेंबली वर्जन 2019.1.15341.0 है:

Project 1 has Assembly version 2019.1.15341.0

साथ ही, वही असेंबली संस्करण यूजर इंटरफेस (WPF एप्लिकेशन) को सौंपा गया है:

[assembly: AssemblyVersion("2019.1.15341.0")]
[assembly: AssemblyFileVersion("2019.1.15341.0")]

टीमसिटी में, मैंने असेंबलीइन्फो पैचर को कॉन्फ़िगर किया है:

TeamCity AssemblyInfo Patcher

मैं टीमसिटी का उपयोग करके संपूर्ण समाधान तैयार करता हूं और बिल्ड सफल रहे:

Build Successful in TeamCity

अब देखते हैं संपूर्ण समाधान तैयार करने के बाद निर्मित कलाकृतियों की संपत्ति:

<मजबूत>1. प्रोजेक्ट 1 (कक्षा पुस्तकालय, डीएलएल गुण):

project1.dll

<मजबूत>2. यूजर इंटरफेस (डब्ल्यूपीएफ प्रोजेक्ट):

USER interface exe

मैं देख रहा हूं कि UserInterface.exe's Version को TeamCity द्वारा उसके build counter और build vcs number के अनुसार बदल दिया गया है, लेकिन DLL's version को क्यों नहीं बदला गया? क्या मुझे कोई कदम याद आ रहा है? या कुछ और?

कोई भी जानकारी जो मुझे याद आ रही है कृपया सूचित करें।

EXE के गुण अपेक्षा के अनुरूप ठीक लगते हैं। मुख्य चिंता डीएलएल पर है: इसकी संपत्ति बदली नहीं जा रही है।

4
Gour Gopal 4 जुलाई 2018, 15:57

1 उत्तर

TeamCity असेंबलीइन्फो पैचर डॉक्स के अनुसार:

...इस बिल्ड फीचर के कॉन्फ़िगर होने के बाद, यह पहले बिल्ड स्टेप से पहले चलेगा। टीमसिटी पहले बिल्ड चेकआउट निर्देशिका में मिली फाइलों में प्रतिस्थापन करेगी और फिर आपकी बिल्ड चलाएगी।

हालांकि, डीएलएल परियोजनाओं की सेटिंग्स (आपका पहला स्क्रीनशॉट) के पैकेज टैब पर आपके पास जो मान हैं, वे निर्माण प्रक्रिया के दौरान ही लागू होते हैं, वह तब होता है जब एमएसबिल्ड आपकी परियोजनाओं को संसाधित करता है। मुझे संदेह है कि टीमसिटी असेंबली पैचर द्वारा निर्धारित मूल्यों को यहां डिफ़ॉल्ट रूप से बदल दिया गया है।

1
Yan Sklyarenko 4 जुलाई 2018, 18:15