Maybe I am missing something, but Visual Studio's unit testing has special attributes you can put on methods to control execution order and other things. This should have been automatically generated when you first made the unit testing project:
#region Additional test attributes
//
//You can use the following additional attributes as you write your tests:
//
//Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize]
//public static void MyClassInitialize(TestContext testContext) {
//}
//
//Use ClassCleanup to run code after all tests in a class have run
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//Use TestInitialize to run code before running each test
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//Use TestCleanup to run code after each test has run
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
So using [ClassInitialize] should allow you to write whatever has to execute first into a method. Then your tests can run. Or you can use [TestInitialize] to run code before each test.