1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.IO;
- namespace CassiniDev
- {
- /// <summary>
- /// Locates content local to the project, e.g. copy always or deployment item/directory
- ///
- /// Depending on the runner in question, the content directory may be in any one over several relative locations.
- /// Let's just start backing out of the current directory looking for it...
- ///
- /// For MSTest we added a deployment directory so can find somewhere in the hierarchy /web
- /// For NUnit the content will be in /deploy/web right here in /bin/xxx
- /// </summary>
- public class LocalContentLocator : IContentLocator
- {
- #region IContentLocator Members
- public string LocateContent()
- {
- var path = Environment.CurrentDirectory;
- while (!Directory.Exists(Path.Combine(path + "", "web")) &&
- !Directory.Exists(Path.Combine(path + "", @"deploy\web")))
- {
- path = Path.GetDirectoryName(path);
- }
- if (Directory.Exists(Path.Combine(path + "", "web")))
- {
- path = Path.Combine(path + "", "web");
- }
- else if (Directory.Exists(Path.Combine(path + "", @"deploy\web")))
- {
- path = Path.Combine(path + "", @"deploy\web");
- }
- else
- {
- throw new Exception("could not find content");
- }
- return path;
- }
- #endregion
- }
- }
|