استخدام AssemblyInfo لتحديث ملفات AssemblyInfo.cs المتعددة تلقائيًا

StackOverflow https://stackoverflow.com/questions/116140

سؤال

لدي العديد من ملفات AssemblyInfo.cs كجزء من العديد من المشاريع في حل واحد أقوم بإنشائه تلقائيًا كجزء من TeamCity.

لجعل البرنامج النصي msbuild أكثر قابلية للصيانة، أود أن أكون قادرًا على استخدام مهمة مجتمع AssemblyInfo بالتزامن مع ItemGroup على سبيل المثال.

<ItemGroup>
     <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                  ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                  AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="@(AllAssemblyInfos)" />

وهو ما لا يعمل بشكل صارخ لأن OutputFile لا يمكن أن يكون مجموعة ItemGroup مرجعية.

هل يعرف أحد كيفية جعل هذا العمل؟

هل كانت مفيدة؟

المحلول

حاول تغيير @ إلى % كما هو موضح أدناه

<ItemGroup>
 <AllAssemblyInfos Include="..\**\AssemblyInfo.cs" />
</ItemGroup>

<AssemblyInfo AssemblyTitle="" AssemblyProduct="$(Product)" AssemblyCompany="$(Company)" AssemblyCopyright="$(Copyright)" 
                              ComVisible="false" CLSCompliant="false" CodeLanguage="CS" AssemblyDescription="$(Revision)$(BranchName)" 
                              AssemblyVersion="$(FullVersion)" AssemblyFileVersion="$(FullVersion)" OutputFile="%(AllAssemblyInfos)" />

يؤدي هذا إلى إنشاء استدعاء لكل إدخال في AllAssemblyInfos.

قم بإلقاء نظرة على هذه المقالة أيضًا، من المفترض أن تساعدك.

http://blogs.msdn.com/aaronhallberg/archive/2006/09/05/msbuild-batching-geneating-a-cross-product.aspx

نصائح أخرى

نحن نستخدم الملفات "المرتبطة" في المشروع.مستكشف الحلول -> إضافة عنصر موجود -> ..حدد_ملف ..-> Arrow_on_left_of_add_button -> إضافة كارتباط

ثم لا يتم نسخ الملف المحدد ( AssemblyInfo.cs for now ) إلى دليل المشروع، بل يتم ربط bud فقط من المسار المحدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top