Skip to content

Commit b9009a3

Browse files
authored
Merge pull request #1017 from Caliburn-Micro/vb2ae-patch-2
Add target to copy project references to package
2 parents 31d42e8 + df4fdac commit b9009a3

File tree

2 files changed

+72
-3
lines changed

2 files changed

+72
-3
lines changed

src/Caliburn.Micro.Avalonia/Caliburn.Micro.Avalonia.csproj

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,18 @@
66
<Product>Caliburn.Micro</Product>
77
<RootNamespace>Caliburn.Micro</RootNamespace>
88
<AssemblyOriginatorKeyFile>.\..\Caliburn.Micro.snk</AssemblyOriginatorKeyFile>
9+
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeProjectReferencesWithPrivateAssetsAttributeInPackage</TargetsForTfmSpecificBuildOutput>
10+
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);IncludeReferenceAssemblies</TargetsForTfmSpecificContentInPackage>
911
<SignAssembly>true</SignAssembly>
1012
<LangVersion>latest</LangVersion>
13+
<BuildProjectReferences Condition="'$(NoBuild)' == 'true'">false</BuildProjectReferences>
14+
<!-- Removed the .xml from DefaultAllowedOutputExtensionsInPackageBuildOutputFolder -->
15+
<DefaultAllowedOutputExtensionsInPackageBuildOutputFolder>.dll; .exe; .winmd; .json; .pri</DefaultAllowedOutputExtensionsInPackageBuildOutputFolder>
16+
17+
<!-- Generate documentation file -->
18+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
19+
<!-- Generate symbols package -->
20+
<IncludeSymbols>false</IncludeSymbols>
1121
</PropertyGroup>
1222

1323
<PropertyGroup>
@@ -17,6 +27,7 @@
1727
<PackageReadmeFile>README.md</PackageReadmeFile>
1828
</PropertyGroup>
1929

30+
2031
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0|AnyCPU'" />
2132

2233
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0|AnyCPU'" />
@@ -33,11 +44,8 @@
3344

3445
<ItemGroup>
3546
<ProjectReference Include="..\Caliburn.Micro.Platform.Core\Caliburn.Micro.Platform.Core.csproj" PrivateAssets="all">
36-
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
37-
<IncludeAssets>All</IncludeAssets>
3847
</ProjectReference>
3948
<ProjectReference Include="..\Caliburn.Micro.Core\Caliburn.Micro.Core.csproj" >
40-
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
4149
</ProjectReference>
4250
</ItemGroup>
4351
<ItemGroup>
@@ -72,4 +80,30 @@
7280
<PackageReference Update="Nerdbank.GitVersioning" Version="3.7.112" />
7381
</ItemGroup>
7482

83+
<Target Name="IncludeProjectReferencesWithPrivateAssetsAttributeInPackage"
84+
Condition="'@(ProjectReference)' != '' and @(ProjectReference->AnyHaveMetadataValue('PrivateAssets', 'all'))"
85+
DependsOnTargets="BuildOnlySettings;ResolveReferences">
86+
<ItemGroup>
87+
<_projectReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->WithMetadataValue('PrivateAssets', 'all'))" />
88+
89+
<BuildOutputInPackage Include="@(_projectReferenceCopyLocalPaths)"
90+
TargetPath="%(_projectReferenceCopyLocalPaths.DestinationSubDirectory)" />
91+
<TfmSpecificDebugSymbolsFile Include="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.pdb'))"
92+
TargetPath="%(_projectReferenceCopyLocalPaths.DestinationSubDirectory)"
93+
TargetFramework="$(TargetFramework)"
94+
Condition="'$(IncludeSymbols)' == 'true'" />
95+
96+
<!-- Remove symbol from the non symbol package. -->
97+
<BuildOutputInPackage Remove="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.pdb'))" />
98+
<BuildOutputInPackage Remove="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.xml'))" />
99+
</ItemGroup>
100+
</Target>
101+
102+
103+
<Target Name="IncludeReferenceAssemblies">
104+
<ItemGroup>
105+
<TfmSpecificPackageFile Include="$(TargetRefPath)" PackagePath="ref/$(TargetFramework)" />
106+
<TfmSpecificPackageFile Include="$(DocumentationFile)" PackagePath="ref/$(TargetFramework)" Condition="'$(GenerateDocumentationFile)' == 'true'" />
107+
</ItemGroup>
108+
</Target>
75109
</Project>

src/Caliburn.Micro.Maui/Caliburn.Micro.Maui.csproj

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@
1818

1919
<PackageId>Caliburn.Micro.Maui</PackageId>
2020
<Product>Caliburn.Micro.Maui</Product>
21+
<BuildProjectReferences Condition="'$(NoBuild)' == 'true'">false</BuildProjectReferences>
22+
<!-- Removed the .xml from DefaultAllowedOutputExtensionsInPackageBuildOutputFolder -->
23+
<DefaultAllowedOutputExtensionsInPackageBuildOutputFolder>.dll; .exe; .winmd; .json; .pri</DefaultAllowedOutputExtensionsInPackageBuildOutputFolder>
24+
25+
<!-- Generate documentation file -->
26+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
27+
<!-- Generate symbols package -->
28+
<IncludeSymbols>false</IncludeSymbols>
29+
2130
</PropertyGroup>
2231

2332
<PropertyGroup>
@@ -126,4 +135,30 @@
126135
<ItemGroup>
127136
<InternalsVisibleTo Include="$(AssemblyName).Tests" />
128137
</ItemGroup>
138+
<!-- Add ProjectReferences output which are flagged as PrivateAssets="all" into the package. -->
139+
<Target Name="IncludeProjectReferencesWithPrivateAssetsAttributeInPackage"
140+
Condition="'@(ProjectReference)' != '' and @(ProjectReference->AnyHaveMetadataValue('PrivateAssets', 'all'))"
141+
DependsOnTargets="BuildOnlySettings;ResolveReferences">
142+
<ItemGroup>
143+
<_projectReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->WithMetadataValue('PrivateAssets', 'all'))" />
144+
145+
<BuildOutputInPackage Include="@(_projectReferenceCopyLocalPaths)"
146+
TargetPath="%(_projectReferenceCopyLocalPaths.DestinationSubDirectory)" />
147+
<TfmSpecificDebugSymbolsFile Include="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.pdb'))"
148+
TargetPath="%(_projectReferenceCopyLocalPaths.DestinationSubDirectory)"
149+
TargetFramework="$(TargetFramework)"
150+
Condition="'$(IncludeSymbols)' == 'true'" />
151+
152+
<!-- Remove symbol from the non symbol package. -->
153+
<BuildOutputInPackage Remove="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.pdb'))" />
154+
<BuildOutputInPackage Remove="@(_projectReferenceCopyLocalPaths->WithMetadataValue('Extension', '.xml'))" />
155+
</ItemGroup>
156+
</Target>
157+
158+
<Target Name="IncludeReferenceAssemblies">
159+
<ItemGroup>
160+
<TfmSpecificPackageFile Include="$(TargetRefPath)" PackagePath="ref/$(TargetFramework)" />
161+
<TfmSpecificPackageFile Include="$(DocumentationFile)" PackagePath="ref/$(TargetFramework)" Condition="'$(GenerateDocumentationFile)' == 'true'" />
162+
</ItemGroup>
163+
</Target>
129164
</Project>

0 commit comments

Comments
 (0)