PDA

View Full Version : سوال: استفاده از regex در فایل csproj



barnamenevisjavan
جمعه 17 فروردین 1397, 14:07 عصر
سلام من اسمبلی هارو داخل 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.DestinationSubDirectory)%(Asse mbliesToEmbed.Filename)%(AssembliesToEmbed.Extensi on)</LogicalName>
</EmbeddedResource>


[/XML]
اما همینطور که میبینید اگر من 3 تا اسمبلی به اسم های
* System.Data.SQLite.dll
* System.Data.SQLiteEF6.dll
* System.Data.SQLiteLinq.dll

داشته باشم هر سه این ها انتخاب خواهند شد اما من میخوام فقط اسمبلی System.Data.SQLite.dll انتخاب بشه چکار باید بکنم؟

Mahmoud.Afrad
جمعه 17 فروردین 1397, 21:11 عصر
الگوی زیر رو تست کنید
^((?!System.Data.SQLite)\.).*$

barnamenevisjavan
شنبه 18 فروردین 1397, 18:25 عصر
الگوی زیر رو تست کنید
^((?!System.Data.SQLite)\.).*$
جواب نداد تمامی اسمبلی هارو استثنا میکنه

nunegandom
یک شنبه 19 فروردین 1397, 00:04 صبح
این الگو چطور؟ (https://regex101.com/r/rCMQR3/1)

System.Data.SQLite(?![A-Za-z])

barnamenevisjavan
یک شنبه 19 فروردین 1397, 00:30 صبح
این الگو چطور؟ (https://regex101.com/r/rCMQR3/1)

System.Data.SQLite(?![A-Za-z])
خیلی جالب شد حالا همه اسمبلی هارو استثنا میکنه به جز این 3تا sqlite

nunegandom
یک شنبه 19 فروردین 1397, 18:00 عصر
اسم همه اسمبلی هاتونو بذارید + چیزی که میخواید select بشه

barnamenevisjavan
یک شنبه 19 فروردین 1397, 18:33 عصر
اسم همه اسمبلی هاتونو بذارید + چیزی که میخواید 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

nunegandom
یک شنبه 19 فروردین 1397, 22:25 عصر
(System.Data.SQLite.dll)|(Logify.Alert.Wpf.dll)|(E ntityFramework.SqlServer.dll)|(EntityFramework.dll )
:شیطان:
هیچ فاصله ای وجود نداره
اسم اسمبلی ها که کاملا مشخصه پس اسمشون رو کامل میذاریم
و هر کدوم از پترن ها رو یک پرانتز که معنیش گروه بندی میشه!
| هم به معنای OR هست

اینم یه مدل دیگه (https://regex101.com/r/rCMQR3/2) اگر نمیشه از .dll مدل قبل استفاده کرد

(System.Data.SQLite(?=.dll))|(Logify.Alert.Wpf)|(E ntityFramework.SqlServer)|(EntityFramework)