C# 是否在我的生成输出中包含Nuget依赖项?

C# 是否在我的生成输出中包含Nuget依赖项?,c#,visual-studio,.net-core,visual-studio-2017,mef,C#,Visual Studio,.net Core,Visual Studio 2017,Mef,我正在构建一个模块化的.NET核心应用程序,它可以使用MEF在运行时加载扩展。我有两个项目,一个是我希望能够在运行时加载的库,然后我有我的主应用程序来加载 我的库项目有一些Nuget依赖项。为了在运行时加载我的库,我需要这些Nuget依赖项在运行时在库旁边可用,但使用VS2017构建时不会将这些Nuget DLL作为输出的一部分 在构建库时,如何获取包含的Nuget DLL 编辑:我尝试了dotnet发布和dotnet包,但这两种方法都使我成为一个nupkg文件,只包含我的DLL,而不是我需要的

我正在构建一个模块化的.NET核心应用程序,它可以使用MEF在运行时加载扩展。我有两个项目,一个是我希望能够在运行时加载的库,然后我有我的主应用程序来加载

我的库项目有一些Nuget依赖项。为了在运行时加载我的库,我需要这些Nuget依赖项在运行时在库旁边可用,但使用VS2017构建时不会将这些Nuget DLL作为输出的一部分

在构建库时,如何获取包含的Nuget DLL

编辑:我尝试了
dotnet发布
dotnet包
,但这两种方法都使我成为一个
nupkg
文件,只包含我的DLL,而不是我需要的nuget DLL。另外,我不能在运行时很容易地加载
nupkg
文件,这就是为什么我只想自己获取生成的程序集

值得一提的是,我的csproj就是这样的:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <AssemblyName>JSON.plugin</AssemblyName>
    <IncludeBuiltProjectOutputGroup>true</IncludeBuiltProjectOutputGroup>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Composition" Version="1.0.31" />
    <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\BDDGen.Types\BDDGen.Types.csproj" />
  </ItemGroup>

</Project>

netcoreapp1.1
JSON.plugin
真的

为了使生成过程将NuGet软件包中所有引用的dll文件从缓存文件夹复制到生成输出中,请在
中设置此属性:

true

命令行方式是执行
dotnet发布
,而不是
dotnet构建
。不确定VS是否有办法做到这一点(当然,它必须做到)。
dotnet publish
为我构建了一个.nupkg文件,该文件中只有我的库DLL,没有其他内容。是否尝试将引用嵌入DLL中?也许可以退房。不,但这可能是一个选择。我只想要我的DLL和它所依赖的Nuget DLL。@omajid我以前在任何地方都没有得到
publish
目录,但似乎在运行
dotnet clean
dotnet publish
之后,我的所有部门都像我想要的那样放在
publish
文件夹中。谢谢。:)这适用于nuget包依赖项。如果我有一个包含多个项目的解决方案,并且我还需要在该解决方案的主项目中包含其他项目的输出DLL,该怎么办?即使使用您的建议,我现在仍然缺少的是我从主项目动态加载的两个项目的DLL,它们不直接依赖于它们。如果它不依赖于它们,那么它们就不会被复制到输出中。。如果你想,你需要添加一个项目引用,我不想添加一个项目引用,因为项目之间没有“直接依赖性”。无论如何,我找到了另一种可能的方法。我可以在依赖项项目上使用生成后事件集。我添加了一点
xcopy
脚本,以便在每次生成后将项目的输出DLL复制到主项目的
bin
文件夹中。这正是我在.Net 2.0标准项目中所需要的。@CheshireCat,你能分享上面提到的代码吗,谢谢
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>