Upgrading from SA 6 to SA 7
Published 08 March 2019
If you used SmartAssembly 6 and now upgrading to SmartAssembly 7, please be aware of a couple breaking changes. Please follow the instructions below, to make sure SmartAssembly works correctly after upgrading.
You can skip this page if you're installing SmartAssembly for the the first time and weren't using SmartAssembly 6 before.
Copy configuration
To use the same database and other settings from SmartAssembly 6, you must copy the previous configuration contained in SmartAssembly.settings file.
Copy SmartAssembly.settings file from:
%PROGRAMDATA%\Red Gate\SmartAssembly\SmartAssembly.settings
to:
%PROGRAMDATA%\Red Gate\SmartAssembly 7\SmartAssembly.settings
Next time SmartAssembly 7 is opened, it will connect to the database you used in the earlier version.
If you don't copy the configuration file, SmartAssembly 7 will not be able to fetch previous error and feature reports you might have.
Copy database
By default, SmartAssembly 7 uses a SQLite database located in %PROGRAMDATA%\Red Gate\SmartAssembly 7\SmartAssemblySQLite.db
, and will save all map files in %PROGRAMDATA%\Red Gate\SmartAssembly 7\Maps\
. This makes it easier to start using SmartAssembly out-of-the-box.
If you're deploying SmartAssembly to your build servers you may want to switch to a SQL Server database and change the map folder to a network location, accessible from all computers used to read error and feature reports.
To move data between SQLite and SQL Server follow Migrating between SQLite and SQL Server.
You don't need to copy the SQLite database if you haven't deployed any applications to your users while using SQLite as the default SmartAssembly database.
If you copied SmartAssembly.settings configuration from previous installation of SmartAssembly (see previous section), you don't need to make any changes. SmartAssembly 7 will use the same database as SmartAssembly 6.
Change MSBuild tasks
If your project uses SmartAssembly.MSBuild.Tasks
, you need to change its version number from 6.0.0.0
to 7.0.0.0
in your .csproj
/.vbproj
project files.
- <UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName="SmartAssembly.MSBuild.Tasks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
+ <UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName="SmartAssembly.MSBuild.Tasks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
SmartAssembly 7 supports .NET Framework, .NET Core and .NET Standard projects. To learn how to use MSBuild tasks for those, see Using SmartAssembly with MSBuild.
Use .NET Standard version of SmartAssembly.Attributes
If your project has a reference to SmartAssembly.Attributes.dll
(because you use attributes such as [DoNotObfuscate]
), then you may want to switch to a .NET Standard version of this assembly.
You can use .NET Standard version in projects targeting .NET Framework 4.5 and newer.
You should use .NET Standard version in all projects targeting any version of .NET Core or .NET Standard.
To learn more about attributes, see Using custom attributes.
Requirements
You need to have .NET Core SDK 2.0 or newer installed if you want to build .NET Core and .NET Standard projects, or any projects referencing .NET Core or .NET Standard libraries.
Limitations
SmartAssembly 7 does not support .NET Core 1.0 and .NET Core 1.1.
Applications written in F# are also not supported.