Избегайте использования нескольких библиотек DLL в выходных данных сборки после обращения к пакету NuGet - PullRequest
0 голосов
/ 15 октября 2018

Я действительно незнаком с выводом сборки, пакетами nuget, dll-адом, зависимостями библиотеки и т. Д.

Перед добавлением этого пакета NuGet в мою библиотеку классов, только одна DLLсоздается в папке / bin после сборки.

После добавления пакета NuGet я получаю более 100 библиотек в папке / bin.

Есть ли способ создать только одну DLL для библиотеки классов ac #?

Когда мне нужно вызвать библиотеку классов из унаследованного приложения, мне нужно скопировать ВСЕ DLL в моемвывод библиотеки классов, чтобы избежать ошибок - что несколько громоздко.

Это мой .csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Intacct.SDK" Version="2.0.5" />
  </ItemGroup>

</Project>

1 Ответ

0 голосов
/ 15 октября 2018

Да, вы можете сделать это с помощью ILMerge .Вам нужно будет добавить дополнительный шаг сборки:

<ItemGroup>
    <PackageReference Include="ILMerge" Version="2.15.0" />
  </ItemGroup>

  <Target Name="ILMerge">
    <!-- the ILMergePath property points to the location of ILMerge.exe console application -->
    <Exec Command="$(ILMergeConsolePath) /out:MyApp.exe MyApp.exe lib1.dll lib2.dll" />
</Target>

См. Также Объединить DLL в EXE? , чтобы узнать больше идей.

...