|
43 | 43 | <!-- Step 1 Check if lockfile is properly restored -->
|
44 | 44 | <PropertyGroup>
|
45 | 45 | <PaketRestoreRequired>true</PaketRestoreRequired>
|
46 |
| - <NoWarn>$(NoWarn);NU1603</NoWarn> |
| 46 | + <NoWarn>$(NoWarn);NU1603;NU1604;NU1605;NU1608</NoWarn> |
47 | 47 | </PropertyGroup>
|
48 | 48 |
|
49 | 49 | <!-- Because ReadAllText is slow on osx/linux, try to find shasum and awk -->
|
50 | 50 | <PropertyGroup>
|
51 |
| - <PaketRestoreCachedHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreCachedHasher)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketRestoreCacheFile) | /usr/bin/awk '{ print $1 }'</PaketRestoreCachedHasher> |
52 |
| - <PaketRestoreLockFileHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreLockFileHash)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketLockFilePath) | /usr/bin/awk '{ print $1 }'</PaketRestoreLockFileHasher> |
| 51 | + <PaketRestoreCachedHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreCachedHasher)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum "$(PaketRestoreCacheFile)" | /usr/bin/awk '{ print $1 }'</PaketRestoreCachedHasher> |
| 52 | + <PaketRestoreLockFileHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreLockFileHash)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum "$(PaketLockFilePath)" | /usr/bin/awk '{ print $1 }'</PaketRestoreLockFileHasher> |
53 | 53 | </PropertyGroup>
|
54 | 54 |
|
55 | 55 | <!-- If shasum and awk exist get the hashes -->
|
56 | 56 | <Exec StandardOutputImportance="Low" Condition=" '$(PaketRestoreCachedHasher)' != '' " Command="$(PaketRestoreCachedHasher)" ConsoleToMSBuild='true'>
|
57 |
| - <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreCachedHash" /> |
| 57 | + <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreCachedHash" /> |
58 | 58 | </Exec>
|
59 | 59 | <Exec StandardOutputImportance="Low" Condition=" '$(PaketRestoreLockFileHasher)' != '' " Command="$(PaketRestoreLockFileHasher)" ConsoleToMSBuild='true'>
|
60 |
| - <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreLockFileHash" /> |
| 60 | + <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreLockFileHash" /> |
61 | 61 | </Exec>
|
62 | 62 |
|
| 63 | + <!-- Debug whats going on --> |
| 64 | + <Message Importance="low" Text="calling paket restore with targetframework=$(TargetFramework) targetframeworks=$(TargetFrameworks)" /> |
| 65 | + |
63 | 66 | <PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') ">
|
64 | 67 | <!-- if no hash has been done yet fall back to just reading in the files and comparing them -->
|
65 | 68 | <PaketRestoreCachedHash Condition=" '$(PaketRestoreCachedHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash>
|
|
68 | 71 | <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
|
69 | 72 | <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired>
|
70 | 73 | </PropertyGroup>
|
| 74 | + |
| 75 | + <PropertyGroup Condition="'$(PaketPropsVersion)' != '5.174.2' "> |
| 76 | + <PaketRestoreRequired>true</PaketRestoreRequired> |
| 77 | + </PropertyGroup> |
71 | 78 |
|
72 | 79 | <!-- Do a global restore if required -->
|
73 | 80 | <Exec Command='$(PaketBootStrapperCommand)' Condition="Exists('$(PaketBootStrapperExePath)') AND !(Exists('$(PaketExePath)'))" ContinueOnError="false" />
|
74 | 81 | <Exec Command='$(PaketCommand) restore' Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
|
75 | 82 |
|
76 | 83 | <!-- Step 2 Detect project specific changes -->
|
| 84 | + <ItemGroup> |
| 85 | + <MyTargetFrameworks Condition="'$(TargetFramework)' != '' " Include="$(TargetFramework)"></MyTargetFrameworks> |
| 86 | + <!-- Don't include all frameworks when msbuild explicitly asks for a single one --> |
| 87 | + <MyTargetFrameworks Condition="'$(TargetFrameworks)' != '' AND '$(TargetFramework)' == '' " Include="$(TargetFrameworks)"></MyTargetFrameworks> |
| 88 | + <PaketResolvedFilePaths Include="@(MyTargetFrameworks -> '$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).%(Identity).paket.resolved')"></PaketResolvedFilePaths> |
| 89 | + </ItemGroup> |
| 90 | + <Message Importance="low" Text="MyTargetFrameworks=@(MyTargetFrameworks) PaketResolvedFilePaths=@(PaketResolvedFilePaths)" /> |
77 | 91 | <PropertyGroup>
|
78 | 92 | <PaketReferencesCachedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached</PaketReferencesCachedFilePath>
|
79 | 93 | <!-- MyProject.fsproj.paket.references has the highest precedence -->
|
|
82 | 96 | <PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketOriginalReferencesFilePath>
|
83 | 97 | <!-- paket.references -->
|
84 | 98 | <PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\paket.references</PaketOriginalReferencesFilePath>
|
85 |
| - <PaketResolvedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved</PaketResolvedFilePath> |
| 99 | + |
| 100 | + <DoAllResolvedFilesExist>false</DoAllResolvedFilesExist> |
| 101 | + <DoAllResolvedFilesExist Condition="Exists(%(PaketResolvedFilePaths.Identity))">true</DoAllResolvedFilesExist> |
86 | 102 | <PaketRestoreRequired>true</PaketRestoreRequired>
|
87 | 103 | <PaketRestoreRequiredReason>references-file-or-cache-not-found</PaketRestoreRequiredReason>
|
88 | 104 | </PropertyGroup>
|
|
101 | 117 | </PropertyGroup>
|
102 | 118 |
|
103 | 119 | <!-- Step 2 b detect relevant changes in project file (new targetframework) -->
|
104 |
| - <PropertyGroup Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' "> |
| 120 | + <PropertyGroup Condition=" '$(DoAllResolvedFilesExist)' != 'true' "> |
105 | 121 | <PaketRestoreRequired>true</PaketRestoreRequired>
|
106 |
| - <PaketRestoreRequiredReason>target-framework '$(TargetFramework)'</PaketRestoreRequiredReason> |
| 122 | + <PaketRestoreRequiredReason>target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths)</PaketRestoreRequiredReason> |
107 | 123 | </PropertyGroup>
|
108 | 124 |
|
109 | 125 | <!-- Step 3 Restore project specific stuff if required -->
|
110 | 126 | <Message Condition=" '$(PaketRestoreRequired)' == 'true' " Importance="low" Text="Detected a change ('$(PaketRestoreRequiredReason)') in the project file '$(MSBuildProjectFullPath)', calling paket restore" />
|
111 |
| - <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)"' Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" /> |
| 127 | + <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)" --target-framework "$(TargetFrameworks)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' == '' " ContinueOnError="false" /> |
| 128 | + <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)" --target-framework "$(TargetFramework)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' != '' " ContinueOnError="false" /> |
112 | 129 |
|
113 | 130 | <!-- This shouldn't actually happen, but just to be sure. -->
|
114 |
| - <Error Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' AND '$(ResolveNuGetPackages)' != 'False' " Text="Paket file '$(PaketResolvedFilePath)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." /> |
| 131 | + <PropertyGroup> |
| 132 | + <DoAllResolvedFilesExist>false</DoAllResolvedFilesExist> |
| 133 | + <DoAllResolvedFilesExist Condition="Exists(%(PaketResolvedFilePaths.Identity))">true</DoAllResolvedFilesExist> |
| 134 | + </PropertyGroup> |
| 135 | + <Error Condition=" '$(DoAllResolvedFilesExist)' != 'true' AND '$(ResolveNuGetPackages)' != 'False' " Text="One Paket file '@(PaketResolvedFilePaths)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." /> |
115 | 136 |
|
116 | 137 | <!-- Step 4 forward all msbuild properties (PackageReference, DotNetCliToolReference) to msbuild -->
|
117 |
| - <ReadLinesFromFile Condition="Exists('$(PaketResolvedFilePath)')" File="$(PaketResolvedFilePath)" > |
| 138 | + <ReadLinesFromFile Condition="($(DesignTimeBuild) != true OR '$(PaketPropsLoaded)' != 'true') AND '@(PaketResolvedFilePaths)' != ''" File="%(PaketResolvedFilePaths.Identity)" > |
118 | 139 | <Output TaskParameter="Lines" ItemName="PaketReferencesFileLines"/>
|
119 | 140 | </ReadLinesFromFile>
|
120 | 141 |
|
121 |
| - <ItemGroup Condition=" Exists('$(PaketResolvedFilePath)') AND '@(PaketReferencesFileLines)' != '' " > |
| 142 | + <ItemGroup Condition="($(DesignTimeBuild) != true OR '$(PaketPropsLoaded)' != 'true') AND '@(PaketReferencesFileLines)' != '' " > |
122 | 143 | <PaketReferencesFileLinesInfo Include="@(PaketReferencesFileLines)" >
|
123 | 144 | <PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
|
124 | 145 | <PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
|
125 | 146 | <AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
|
126 | 147 | </PaketReferencesFileLinesInfo>
|
127 | 148 | <PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
|
128 | 149 | <Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
|
129 |
| - <PrivateAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'true'">All</PrivateAssets> |
| 150 | + <PrivateAssets Condition=" ('%(PaketReferencesFileLinesInfo.AllPrivateAssets)' == 'true') Or ('$(PackAsTool)' == 'true') ">All</PrivateAssets> |
| 151 | + <ExcludeAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'exclude'">runtime</ExcludeAssets> |
| 152 | + <Publish Condition=" '$(PackAsTool)' == 'true' ">true</Publish> |
130 | 153 | </PackageReference>
|
131 | 154 | </ItemGroup>
|
132 | 155 |
|
|
183 | 206 |
|
184 | 207 | <ConvertToAbsolutePath Condition="@(_NuspecFiles) != ''" Paths="@(_NuspecFiles)">
|
185 | 208 | <Output TaskParameter="AbsolutePaths" PropertyName="NuspecFileAbsolutePath" />
|
186 |
| - </ConvertToAbsolutePath> |
187 |
| - |
| 209 | + </ConvertToAbsolutePath> |
| 210 | + |
188 | 211 |
|
189 | 212 | <!-- Call Pack -->
|
190 | 213 | <PackTask Condition="$(UseNewPack)"
|
|
0 commit comments