You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个发布配置文件中包含两个项目并确保依赖项完整

解决Project A发布时包含Project B完整依赖的方法
  • 调整项目引用属性
    右键Project A里的Project B引用,打开「属性」,把「复制本地」设为True。这样Project B的主程序和它直接依赖的DLL会自动复制到Project A的输出目录。要是Project B还有间接依赖(比如NuGet包的DLL),得确保这些依赖在Project B里也把「复制本地」设为True。

  • .NET Core/.NET 5+专属配置
    直接修改Project A的.csproj文件,添加这段配置:

    <ItemGroup>
      <ProjectReference Include="..\ProjectB\ProjectB.csproj">
        <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
        <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
      </ProjectReference>
    </ItemGroup>
    

    这段配置会强制把Project B的所有锁定文件依赖(包括NuGet包的DLL)都复制到输出目录。

  • 用发布配置文件兜底
    打开Project A的发布设置,进入「文件发布选项」,勾选「包含所有项目引用的内容文件」。如果是.NET Framework项目,还能在发布配置文件的.pubxml里加这段代码:

    <PropertyGroup>
      <CopyAllFilesToSingleFolderForPackageDependsOn>
        CustomCollectFiles;
        $(CopyAllFilesToSingleFolderForPackageDependsOn);
      </CopyAllFilesToSingleFolderForPackageDependsOn>
    </PropertyGroup>
    <Target Name="CustomCollectFiles">
      <ItemGroup>
        <_CustomFiles Include="..\ProjectB\bin\$(Configuration)\**\*.*" />
        <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
          <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
        </FilesForPackagingFromProject>
      </ItemGroup>
    </Target>
    

    这个自定义目标会把Project B输出目录下的所有文件都拷贝到Project A的发布目录里。

内容的提问来源于stack exchange,提问作者Marvin Klein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:33:25