...
- <Import Project="$(RootPath)TIME\Solutions\IncludeGlobalAssembly.targets" /> to set the global assembly - no AssemblyInfo.cs is required anymore - these properties are set in the csproj file.
- <Import Project="$(RootPath)RiverSystem\Solutions\NormalisePdbBuildRoot.targets" /> to configure the normalization of pdbs
- CopyReferences are done via the Directory.Build.targets (currently lives in time)
- AppendTargetFrameworkToOutputPath, AppendRuntimeIdentifierToOutputPath and WarningsAsErrors are set by Directory.Build.props
- this is to stop the /win/x64 folders from being generated
- Copy 3rdParty to output is done via the Directory.Build.targets
- this is done since the Choose/When directives don't seem to work when running the builds via cake/msbuild (they work ok with visual studio 2017/2019)
- Compile Remove="file.cs" should be deleted and the "file.cs" should be deleted from the git repo as well.
- For projects containing WPF or WinForms the SDK should be changed from "Microsoft.NET.Sdk" to "MSBuild.Sdk.Extras/1.6.68" (from https://www.nuget.org/packages/MSBuild.Sdk.Extras) and the following changes made:
- Add <ExtrasEnableWpfProjectSetup>true</ExtrasEnableWpfProjectSetup> for WPF
- Add <ExtrasEnableWinFormsProjectSetup>true</ExtrasEnableWinFormsProjectSetup> for WinForms
- EmbeddedResource for ".resx" files and the associated Compile of ".designer.resx" files should be removed
- Compile of ".cs" UserControl, Form and Component files and associated ".designer.cs" files should be removed
- Compile of ".xaml.cs" files and associated ".xaml" Page should be removed
Add entries using wildcards for resources if they exist similar to the following:
Code Block language xml <ItemGroup> <EmbeddedResource Include="Persistence\Mappings\*.hbm.xml" /> <EmbeddedResource Include="Persistence\SchemaUpgrades\*.sql" /> <Resource Include="Resources\**\*"> <Pack>True</Pack> </Resource> </ItemGroup>
- Remove individual entries for resources
Example:
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
...
- Easiest way to install this is via dotnet cli tooling:
- dotnet tool install -g Project2015To2017.Migrate2017.Tool\
- Then to run the conversion:
- dotnet migrate-2017 wizard old-output-path C:\src\rm3\riversystem\Solutions\<solution>.sln
- Tidy up using regex:
<ReferencePath>$(RootPath)3rdParty</ReferencePath> → <AssemblySearchPaths>$(RootPath)3rdParty;$(AssemblySearchPaths);</AssemblySearchPaths>
- Update to using correct ImportProjects (e.g. use the new imports from TIME rather than riversystem since they work with the new sdk format)
- Make additional changes as outlined in Notes above.