خاصية دالات
في the .NET الإصدار إطار العمل 4, خاصية دالات can be used إلى evaluate MSBuild برامج نصية. خاصية دالات can be used wherever خصائص appear. Unlike tasks, خاصية دالات can be used outside of targets, و are evaluated قبل أي الهدف runs.
Without using MSBuild tasks, you can read the النظام الوقت, يقارن سلاسل, مطابقة عادي expressions, و perform غير ذلك الاجراءات في your بنية برنامج نصي. MSBuild will try إلى تحويل سلسلة إلى رقم و رقم إلى سلسلة, و make غير ذلك conversions كـ مطلوب.
خاصية دالة بناء الجملة
These are three kinds of خاصية دالات; each دالة has a different بناء الجملة:
سلسلة (مثيل) خاصية دالات
ثابت خاصية دالات
MSBuild خاصية دالات
سلسلة خاصية دالات
الجميع بنية خاصية قيم are just سلسلة قيم. You can استخدم سلسلة (مثيل) وظائف إلى operate تشغيل أي قيمة الخاصية. For مثال, you can يفك الضغط the محرك أقراص اسم (the أول three حرف/ حروف) من a بنية خاصية that represents a كامل مسار بواسطة using this تعليمات برمجية:
$(ProjectOutputFolder.Substring(0,3))
ثابت خاصية دالات
في your بنية برنامج نصي, you can الوصول the ثابت خصائص و وظائف of many النظام فئات. إلى الحصول على القيمة خاصية ثابتة، استخدم بناء الجملة التالي, الموقع فئة هو اسم الفئة النظام و خاصية اسم الخاصية.
$([Class]::Property)
على سبيل المثال، يمكنك استخدام الإجراءات التالية تعليمات برمجية لتعيين خاصية بناء للوقت والتاريخ الحاليين.
<Today>$([System.DateTime]::Now)</Today>
إلى استدعاء أسلوب ثابت، استخدم بناء الجملة التالي, الموقع فئة هو اسم الفئة نظام الأسلوب هو اسم الأسلوب وهو من (معلمات) قائمة المعلمات للأسلوب:
$([Class]::Member(Parameters))
على سبيل المثال، إلى تعيين خاصية بنية إلى المعرف الفريد عمومي جديدة، يمكنك استخدام هذا برنامج نصي:
<NewGuid>$([System.Guid]::NewGuid())</NewGuid>
في دالات خاصية ثابتة، يمكنك استخدم أي أسلوب ثابت أو خاصية من هذه الفئات النظام:
System.Byte
System.Char
النظام.تحويل
النظام.التاريخ والوقت
النظام.عشري
System.Double
النظام.Enum
النظام.معرّف فريد عالمي
System.Int16
System.Int32
System.Int64
النظام.IO.مسار
النظام.Math
System.UInt16
System.UInt32
System.UInt64
System.SByte
System.Single
System.String
النظام.StringComparer
النظام.فترة زمنية
النظام.نص.RegularExpressions.Regex
Microsoft.بنية.Utilities.ToolLocationHelper
بالإضافة إلى ذلك، يمكنك استخدام إحدى الطريقتين التاليتين ثابتة و خصائص:
النظام.بيئة::سطر الأوامر
النظام.بيئة::ExpandEnvironmentVariables
النظام.بيئة::GetEnvironmentVariable
النظام.بيئة::GetEnvironmentVariables
النظام.بيئة::GetFolderPath
النظام.بيئة::GetLogicalDrives
النظام.IO.الدليل::GetDirectories
النظام.IO.الدليل::GetFiles
النظام.IO.الدليل::GetLastAccessTime
النظام.IO.الدليل::GetLastWriteTime
النظام.IO.الدليل::GetParent
النظام.IO.ملف::موجود
النظام.IO.ملف::GetCreationTime
النظام.IO.ملف::GetAttributes
النظام.IO.ملف::GetLastAccessTime
النظام.IO.ملف::GetLastWriteTime
النظام.IO.ملف::ReadAllText
استدعاء وظائف مثيل تشغيل خصائص ثابت
في حالة الوصول ثابت الخاصية التي تقوم بإرجاع مثيل كائن، يمكن استدعاء وظائف مثيل لهذا الكائن. إلى استدعاء أسلوب مثيل، استخدم بناء الجملة التالي, الموقع فئة هو اسم فئة "النظام"، هو خاصية اسم خاصية ، أسلوب اسم الأسلوب و من (معلمات) قائمة المعلمات للأسلوب:
$([Class]:: Property.Method(Parameters))
يجب أن يكون اسم الفئة مؤهل بشكل كامل بمساحة الاسم.
على سبيل المثال، يمكنك استخدام التعليمة البرمجية التالية لتعيين بنية الخاصية إلى التاريخ الحالي اليوم.
<Today>$([System.DateTime]::Now.ToString("yyyy.MM.dd"))</Today>
دالات خصائص MSBuild
يمكنك الوصول إلى العديد من الطرق ثابتة في الإنشاء الخاصة بك لتوفير الحسابي، تمثل منطقية، و دعم حرف إلغاء. You الوصول these وظائف بواسطة using the following syntax, الموقع أسلوب هو the name of the أسلوب و Parameters هو the معلمة قائمة for the أسلوب.
$([MSBuild]::Method(Parameters))
على سبيل المثال، إلى إضافة خصائص إلى gether الاثنين والتي تحتوي على قيم رقمية، استخدم تعليمات برمجية التالية.
$([MSBuild]::Add($(NumberOne), $(NumberTwo))
هنا هو lهوt MSBuild دالات خاصية:
توقيع دالة |
الوصف |
---|---|
مزدوج إضافة (مزدوج، مضاعفة b) |
إضافة ثنائية الثاني. |
طويلة إضافة (طويلة a, b طويل) |
قم بإضافة longs الثاني. |
مزدوج طرح (مزدوج، مضاعفة b) |
قم بطرح ثنائية الثاني. |
طويلة بطرح (طويلة a, b طويل) |
قم بطرح longs الثاني. |
مزدوج ضرب (مزدوج، مضاعفة b) |
قم بضرب ثنائية الثاني. |
طويلة بضرب (طويلة، طويلة b) |
قم بضرب longs الثاني. |
مزدوج تقسيم (مزدوج، مضاعفة b) |
قم بقسمة ثنائية الثاني. |
طول تقسيم (طويلة، طويلة b) |
قم بتقسيم longs الثاني. |
Modulo(مزدوج a, مزدوج b) مزدوجة |
modulo ثنائية الثاني. |
Modulo(long a, long b) طويلة |
modulo longs الثاني. |
سلسلة Escape(string unescaped) |
الهروب السلسلة طبقاً لقواعد escaping إلى MSBuild. |
سلسلة Unescape (سلسلة escaped) |
unescape سلسلة وفقا ل MSBuild escaping القواعد. |
عدد صحيح BitwiseOr(int أول, int ثانية) |
إجراء أحادي المعامل ORتشغيل أول و ثانية (اﻷول | ثانية). |
عدد صحيح BitwiseAnd(int أول, int ثانية) |
إجراء أحادي المعامل ANDتشغيل أول و ثانية (اﻷول & ثانية). |
عدد صحيح BitwiseXor(int أول, int ثانية) |
إجراء أحادي المعامل XORتشغيل أول و الثاني (أول ^ الثاني). |
عدد صحيح BitwiseNot(int أول) |
تنفيذ NOT(~أول) تمثل . |
MSBuild GetRegistryValueFromView
MSBuild GetRegistryValueFromViewدالة خاصية يحصل على بيانات السجل النظام بإعطاء المفتاح السجل، والقيمة، و واحد أو المزيد السجل المرتبة طرق العرض. الالمفتاح و قيمة يتم البحث في كل طريقة عرض السجل في ترتيب حتى يتم العثور على.
يكون بناء الجملة لهذه دالة خاصية:
[MSBuild]:: GetRegistryValueFromView (keyName السلسلة valueName السلسلة، defaultValue الكائن وطرق عرض [] للكائن params)
يحتفظ النظام التشغيل Windows 64 بت HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node السجل المفتاح الذي يمثل HKEY_LOCAL_MACHINE\SOFTWARE السجل عرض لتطبيقات 32-بت.
بشكل افتراضي، "أحد تطبيقات 32 بت التي تعمل على WOW64 يصل إلى 32 بت السجل العرض وتطبيق 64 بت يصل إلى 64 بت السجل عرض.
تتوفر طرق العرض للتسجيل التالية:
عرض السجل |
التعريف |
---|---|
RegistryView.Registry32 |
The 32-بت تطبيق السجل عرض. |
RegistryView.Registry64 |
The 64-بت تطبيق السجل عرض. |
RegistryView.الافتراضي |
The السجل عرض that التلائمات the عملية that the تطبيق هو running تشغيل. |
على سبيل المثال،
$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v3.0\ReferenceAssemblies', 'SLRuntimeInstallPath', null, RegistryView.Registry64, RegistryView.Registry32))
gets the SLRuntimeInstallPath بيانات of the ReferenceAssemblies المفتاح, looking أول في the 64-بت السجل عرض و then في the 32-بت السجل عرض.
Nested خاصية دالات
خاصية دالات may be combined إلى نموذج المزيد complex دالات. على سبيل المثال،
$([MSBuild]::BitwiseAnd(32, $([System.IO.File]::GetAttributes(tempFile))))
returns the value of the FileAttributes Archive bit (32 or 0) of the file given by the path tempFile. لاحظ وجود تعداد بيانات التي لا تظهر قيم بواسطة الاسم بخاصية دالات. يجب أن يستخدم القيمة الرقمية (32) بدلاً من ذلك.
كما قد تظهر بيانات التعريف في الدالات المتداخلة للخاصية. لمزيد من المعلومات، راجع تجميع MSBuild.