我真的不熟悉构建输出,nuget包,dll地狱,库依赖项等。
在将this NuGet package添加到类库之前,在我构建之后,/ bin文件夹中仅生成一个DLL。
添加NuGet软件包后,我在/ bin文件夹中获得了100多个dll。
是否有一种方法只能为c#类库生成一个DLL?
当我需要从旧版应用程序调用类库时,必须复制类库构建输出中的所有dll以避免错误-这有点麻烦。
这是我的.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Intacct.SDK" Version="2.0.5" />
</ItemGroup>
</Project>
答案 0 :(得分:3)
是的,您可以使用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>
另请参见Merge DLL into EXE?。