luk*_*e77 5 c# msbuild dependencies csproj visual-studio
我有一个包含多个项目的解决方案。
假设我有项目:
P2是我的启动项目。
我想配置P2并依赖于P4,以便构建P4 ,并将P4和依赖项推送到P2的 bin 文件夹,但我不希望P2的 dll 有对P4的 .net 引用
我通过 csproj 中的特定项目参考部分成功地做到了这一点:
<ProjectReference Include="..\P4\P4.csproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<OutputItemType>Content</OutputItemType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Targets>Build;DebugSymbolsProjectOutputGroup</Targets>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
但此解决方案仅添加P4而不是依赖项(P3和N1)
有谁知道该怎么做?
谢谢
有谁知道该怎么做?
这是间接依赖关系的默认行为。
如果项目P4实际上不包含任何显式使用参考项目P3和 nuget 包N1的代码,则 VS/MSBuild 不会检测到P2需要P3 , N1,因此 MSBuild 认为没有必要复制P3 , N1到P2的输出文件夹。这就是为什么只将P4而不是依赖项(P3和N1)添加到P2的 bin 目录中的原因。
要解决此问题,您可以直接引用P3、N1来投影P2或在P2的构建事件中添加复制命令行以将这些 dll 复制到 bin 文件夹中。
此外,您还可以将虚拟代码添加到项目 P2 中使用项目引用P3、N1的文件中。
有关更多详细信息,请参阅如果在解决方案中使用项目依赖项,MSBuild 不会复制引用(DLL 文件) 。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2982 次 |
| 最近记录: |