- Before starting, you will need:
- Node.js and npm installed globally
- A local running instand of SQL Server and Visual Studio 2013 or above
- In Visual Studio, open ChocolateyGallery.sln
- In the Website project, open web.config
- Locate the connectionStrings section, and modify the NuGetGallery connection string to point to your local instance of SQL Server. It's not a bad idea to change the database name (initial catalog) just to avoid confusion. For example if your SQL Server instance is named SQL2016, you could use:
<add name="NuGetGallery" connectionString="Data Source=.\SQL2016;Initial Catalog=Chocolatey;Integrated Security=SSPI;MultipleActiveResultSets=False;" providerName="System.Data.SqlClient" />
Note: the database does not need to exist - Open the Package Manager Console (Tools > NuGet Package Manager > Package Manager Console)
- If prompted, restore any missing NuGet packages (Don't use
nuget restore
from the command-line as this will pull in extra packages that cause the build to break) - Run the Update-Database command in Package Manager Console (if the command is not found, try reloading the solution in Visual Studio)
- The database named in the connection string should now exist in your SQL Server.
- Press Ctrl-F5 to start the web application without debugging
- Your web browser should launch, showing the chocolatey home page
- Click Signup and enter details to create a new account
- To make this account an administrator, run the following SQL against your new database eg. Use SQL Server Management Studio or sqlcmd from the command line. Note: Replace 'username' with the name of the user account you just created
DECLARE @adminId int
SELECT @adminId = [Key] FROM Roles WHERE Name = 'Admins'
DECLARE @userId int
SELECT @userId = [Key] FROM Users where Username = 'username'
INSERT INTO UserRoles(UserKey, RoleKey) VALUES(@userId, @adminId)
- You should now be up and running!
When debugging, you might see this exception: SimpleInjector.ActivationException: 'The given type IControllerActivator is not a concrete type. Please use one of the other overloads to register this type.'
.
Just ignore this and keep running.
- Please don't fix anything in the
nugetgallery
folder or subfolder. Instead you should copy the unchanged item over tochocolatey/Website
. - Then remove the old item from the Visual Studio project and add the newly copied item to the project.
- Save the project and commit your changes.
- Make your changes as normal now.