private static void CheckWrongCommonProperties()
{
Dictionary<string, string> properties = ProjectHelper.GetCommonProperties();
Dictionary<string, string> required = new Dictionary<string, string>();
Dictionary<string, string> allowed = new Dictionary<string, string>();
allowed.Add("AppDesignerFolder", "Properties");
switch (Arguments.ProjectType)
{
case ProjectType.ClickOnce:
required.Add("ApplicationIcon", null);
break;
case ProjectType.SystemTool:
allowed.Add("ApplicationIcon", null);
break;
default:
allowed.Add("ApplicationIcon", String.Empty);
break;
}
required.Add("AssemblyName", Arguments.AssemblyName);
allowed.Add("AssemblyKeyContainerName", String.Empty);
allowed.Add("AssemblyOriginatorKeyFile", String.Empty);
allowed.Add("CodeContractsAssemblyMode", null);
allowed.Add("Configuration", null);
allowed.Add("DefaultClientScript", null);
allowed.Add("DefaultHTMLPageLayout", null);
allowed.Add("DefaultTargetSchema", null);
allowed.Add("DelaySign", "false");
allowed.Add("FileAlignment", "512");
allowed.Add("FileUpgradeFlags", null);
allowed.Add("IISExpressSSLPort", null);
allowed.Add("IISExpressAnonymousAuthentication", null);
allowed.Add("IISExpressWindowsAuthentication", null);
allowed.Add("IISExpressUseClassicPipelineMode", null);
allowed.Add("GenerateResourceNeverLockTypeAssemblies", "true");
allowed.Add("MvcBuildViews", null);
allowed.Add("Nonshipping", null);
allowed.Add("OldToolsVersion", null);
switch (Arguments.ProjectType)
{
case ProjectType.ClickOnce:
case ProjectType.SystemTool:
required.Add("OutputType", "WinExe");
break;
case ProjectType.Console:
case ProjectType.WindowsService:
required.Add("OutputType", "Exe");
break;
case ProjectType.WebService:
case ProjectType.WebSite:
case ProjectType.Library:
case ProjectType.Test:
case ProjectType.Azure:
required.Add("OutputType", "Library");
break;
}
allowed.Add("Platform", null);
allowed.Add("PlatformTarget", Arguments.TargetPlatform);
if (Arguments.ProjectName == "CC.PresentationEngine")
{
allowed.Add("PostBuildEvent", null);
}
else
{
allowed.Add("PostBuildEvent", String.Empty);
}
allowed.Add("PreBuildEvent", String.Empty);
allowed.Add("ProductVersion", null);
allowed.Add("ProjectGuid", null);
allowed.Add("ProjectType", "Local");
allowed.Add("ProjectTypeGuids", null);
allowed.Add("PublishWizardCompleted", null);
allowed.Add("RoleType", null);
required.Add("RootNamespace", Arguments.RootNamespace);
allowed.Add("RunPostBuildEvent", "OnBuildSuccess");
required.Add("SccAuxPath", "SAK");
required.Add("SccLocalPath", "SAK");
required.Add("SccProjectName", "SAK");
required.Add("SccProvider", "SAK");
allowed.Add("SchemaVersion", null);
allowed.Add("SignAssembly", "false");
switch (Arguments.ProjectType)
{
case ProjectType.ClickOnce:
required.Add("ApplicationManifest", @"Properties\App.manifest");
required.Add("ApplicationRevision", "0");
required.Add("ApplicationVersion", "1.0.0.0");
required.Add("BootstrapperEnabled", "false");
required.Add("GenerateManifests", "false");
required.Add("Install", "true");
required.Add("InstallFrom", "Web");
required.Add("InstallUrl", "http://download.cnetcontentsolutions.com/{0}/{1}/".Display(Arguments.DownloadZone, Arguments.AssemblyName));
required.Add("IsWebBootstrapper", "true");
required.Add("ManifestCertificateThumbprint", "2D5370C222834CBC2CE6F6FE388A29CF75B598D4");
required.Add("ManifestKeyFile", "SignCode2014.pfx");
required.Add("ManifestTimestampUrl", "http://timestamp.comodoca.com/authenticode");
required.Add("MapFileExtensions", "true");
required.Add("MinimumRequiredVersion", "1.0.0.0");
required.Add("ProductName", Arguments.FriendlyName);
required.Add("PublisherName", "CNET Content Solutions");
required.Add("PublishUrl", @"D:\publish\{0}\".Display(Arguments.AssemblyName));
required.Add("SignManifests", "true");
required.Add("UpdateEnabled", "true");
allowed.Add("UpdateInterval", null);
allowed.Add("UpdateIntervalUnits", null);
required.Add("UpdateMode", "Foreground");
required.Add("UpdatePeriodically", "false");
required.Add("UpdateRequired", "true");
required.Add("UseApplicationTrust", "false");
break;
default:
allowed.Add("ApplicationRevision", "0");
allowed.Add("ApplicationVersion", "1.0.0.%2a");
allowed.Add("BootstrapperEnabled", "true");
allowed.Add("Install", "true");
allowed.Add("InstallFrom", "Disk");
allowed.Add("IsWebBootstrapper", "false");
allowed.Add("PublishUrl", @"publish\");
allowed.Add("GenerateManifests", "false");
allowed.Add("MapFileExtensions", "true");
allowed.Add("SignManifests", "true");
allowed.Add("UpdateEnabled", "false");
allowed.Add("UpdateInterval", null);
allowed.Add("UpdateIntervalUnits", null);
allowed.Add("UpdateMode", "Foreground");
allowed.Add("UpdatePeriodically", "false");
allowed.Add("UpdateRequired", "false");
allowed.Add("UseApplicationTrust", "false");
allowed.Add("JSLintSkip", null);
break;
}
if (Arguments.ProjectType == ProjectType.Azure)
{
allowed.Add("CloudExtensionsDir", null);
required.Add("Name", Arguments.ProjectName);
allowed.Add("StartDevelopmentStorage", null);
}
allowed.Add("SilverlightApplicationList", null);
allowed.Add("StartupObject", String.Empty);
allowed.Add("TargetFrameworkProfile", null);
switch (Arguments.TargetFramework)
{
case TargetFramework.Net20:
allowed.Add("TargetFrameworkVersion", "v2.0");
break;
case TargetFramework.Net35:
required.Add("TargetFrameworkVersion", "v3.5");
break;
case TargetFramework.Net40:
required.Add("TargetFrameworkVersion", "v4.0");
break;
case TargetFramework.Net45:
required.Add("TargetFrameworkVersion", "v4.5");
break;
}
allowed.Add("TargetZone", null);
allowed.Add("UpgradeBackupLocation", null);
allowed.Add("UseIISExpress", null);
allowed.Add("UseIISExpressByDefault", null);
allowed.Add("VisualStudioVersion", "10.0");
allowed.Add("VSToolsPath", null);
allowed.Add("Win32Resource", String.Empty);
allowed.Add("WebReference_EnableLegacyEventingModel", null);
allowed.Add("WebReference_EnableProperties", null);
allowed.Add("WebReference_EnableSQLTypes", null);
allowed.Add("MvcProjectUpgradeChecked", null);
string description;
if (ValidationHelper.CheckProperties(
properties,
required,
allowed,
out description))
return;
RaiseError.WrongCommonProperties(description);
}