我想为实用项目创建一个 .csproj。 该项目没有二进制输出,只是用于将一堆其他项目分组到一个公共依赖项中。
我已经在使用 .csproj 继承和自定义目标,因此我可以轻松地破解文件并且没有 GUI 支持。 有谁有一个可用的“空 .csproj ,可用于仅构建其依赖项?
我不希望人们必须安装 C# Desktop 以外的任何工作负载。 例如,这就是为什么我不使用普通的 C++ 实用程序项目。 显然,我可以构建一些我实际上并不分发的东西,但似乎应该有一个更干净的解决方案。
具体来说,回答所有问我原因的人:
所以我将所有插件分组在“所有插件”下,每个插件都需要并链接SDK,每个可执行文件仅依赖于“所有插件”而不链接。 显然它链接了SDK。 效果很好。 只是“所有插件”项目是一个我扔掉的 DLL :) 这看起来很难看。
有一个名为 Microsoft.Build.NoTargets
<Project Sdk="Microsoft.Build.NoTargets">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
<ItemGroup>
<FilesToCopy Include="files\**" />
</ItemGroup>
<Target Name="CopyFiles" BeforeTargets="PrepareForRun">
<Copy
SourceFiles="@(FilesToCopy)"
DestinationFolder="$(OutDir)"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyAdditionalFilesIfPossible)"
UseSymboliclinksIfPossible="$(CreateSymbolicLinksForCopyAdditionalFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
</Target>
</Project>