Buraya problama etiketini App.Config dosyasına eklemeyle ilgili başka (yinelenen olarak işaretlenmiş) sorudan geldim .
Buna bir yan not eklemek istiyorum - Visual Studio zaten bir App.config dosyası oluşturmuştu, ancak önceden oluşturulmuş çalışma zamanı etiketine sonda etiketini eklemek işe yaramadı! araştırma etiketiyle birlikte ayrı bir çalışma zamanı etiketine ihtiyacınız var. Kısacası, App.Config'iniz şöyle görünmelidir:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<!-- Discover assemblies in /lib -->
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib" />
</assemblyBinding>
</runtime>
</configuration>
Bunu anlamak biraz zaman aldı, bu yüzden buraya gönderiyorum. Ayrıca PrettyBin NuGet Paketi'ne kredi . Dll'leri otomatik olarak hareket ettiren bir pakettir. Daha manuel bir yaklaşımı sevdim, bu yüzden kullanmadım.
Ayrıca - burada tüm .dll / .xml / .pdb'yi / Lib'e kopyalayan bir post build komut dosyası var. Bu, insanların başarmaya çalıştığını düşündüğüm / debug (veya / release) klasörünün karmaşıklığını ortadan kaldırıyor.
:: Moves files to a subdirectory, to unclutter the application folder
:: Note that the new subdirectory should be probed so the dlls can be found.
SET path=$(TargetDir)\lib
if not exist "%path%" mkdir "%path%"
del /S /Q "%path%"
move /Y $(TargetDir)*.dll "%path%"
move /Y $(TargetDir)*.xml "%path%"
move /Y $(TargetDir)*.pdb "%path%"