استفاده از regex در فایل csproj
سلام من اسمبلی هارو داخل exe قرار میدم از کد زیر داخل csproj استفاده کردم تا برخی اسمبلی هارو از embed شدن استثنا کنم. تا اینجا همه چی بدون مشکل هستش
<EmbeddedResource Include="@(AssembliesToEmbed)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(AssembliesToEmbed.Filename)', '^((?!Logify.Alert.Wpf).)*$')) And $([System.Text.RegularExpressions.Regex]::IsMatch('%(AssembliesToEmbed.Filename)', '^((?!Entity).)*$')) And $([System.Text.RegularExpressions.Regex]::IsMatch('%(AssembliesToEmbed.Filename)', '^((?!System.Data.SQLite).)*$')) And '%(AssembliesToEmbed.Extension)' == '.dll'" >
<LogicalName>%(AssembliesToEmbed.DestinationSubDir ectory)%(AssembliesToEmbed.Filename)%(AssembliesTo Embed.Extension)</LogicalName>
</EmbeddedResource>
[/XML]
اما همینطور که میبینید اگر من 3 تا اسمبلی به اسم های
* System.Data.SQLite.dll
* System.Data.SQLiteEF6.dll
* System.Data.SQLiteLinq.dll
داشته باشم هر سه این ها انتخاب خواهند شد اما من میخوام فقط اسمبلی System.Data.SQLite.dll انتخاب بشه چکار باید بکنم؟
نقل قول: استفاده از regex در فایل csproj
الگوی زیر رو تست کنید
^((?!System.Data.SQLite)\.).*$
نقل قول: استفاده از regex در فایل csproj
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
الگوی زیر رو تست کنید
^((?!System.Data.SQLite)\.).*$
جواب نداد تمامی اسمبلی هارو استثنا میکنه
نقل قول: استفاده از regex در فایل csproj
این الگو چطور؟
System.Data.SQLite(?![A-Za-z])
نقل قول: استفاده از regex در فایل csproj
نقل قول:
نوشته شده توسط
nunegandom
خیلی جالب شد حالا همه اسمبلی هارو استثنا میکنه به جز این 3تا sqlite
نقل قول: استفاده از regex در فایل csproj
اسم همه اسمبلی هاتونو بذارید + چیزی که میخواید select بشه
نقل قول: استفاده از regex در فایل csproj
نقل قول:
نوشته شده توسط
nunegandom
اسم همه اسمبلی هاتونو بذارید + چیزی که میخواید select بشه
EntityFramework.dll
EntityFramework.SqlServer.dll
Logify.Alert.Wpf.dll
Logify.Alert.Core.dll
System.Data.SQLite.dll
System.Data.SQLite.EF6.dll
System.Data.SQLite.Linq.dll
SQLiteCodeFirst.dll
Thumbnail.dll
Theme.dll
موردهای زیر باید سلکت بشه
EntityFramework.dll
EntityFramework.SqlServer.dll
Logify.Alert.Wpf.dll
System.Data.SQLite.dll
نقل قول: استفاده از regex در فایل csproj
(System.Data.SQLite.dll)|(Logify.Alert.Wpf.dll)|(E ntityFramework.SqlServer.dll)|(EntityFramework.dll )
:شیطان:
هیچ فاصله ای وجود نداره
اسم اسمبلی ها که کاملا مشخصه پس اسمشون رو کامل میذاریم
و هر کدوم از پترن ها رو یک پرانتز که معنیش گروه بندی میشه!
| هم به معنای OR هست
اینم یه مدل دیگه اگر نمیشه از .dll مدل قبل استفاده کرد
(System.Data.SQLite(?=.dll))|(Logify.Alert.Wpf)|(E ntityFramework.SqlServer)|(EntityFramework)