1.调用Msbuild为Website打zip部署包:
2.当让我们的程序需要引用:
assemblyref://Microsoft.Build
assemblyref://Microsoft.Build.Conversion.v4.0
assemblyref://Microsoft.Build.Engine
assemblyref://Microsoft.Build.Framework
assemblyref://Microsoft.Build.Tasks.v4.0
assemblyref://Microsoft.Build.Utilities.v4.0
private static void BuildDeploymentPackage(string slnPath)
{
var projectsPath = Directory.GetParent(slnPath);
var projectFiles = projectsPath.GetFiles("*.*proj", SearchOption.AllDirectories);
IDictionary<string, TargetResult> results;
IEnumerable<ILogger> logger = new List<ILogger> { new ConsoleLogger() { Verbosity = LoggerVerbosity.Normal } };
foreach (var file in projectFiles)
{
ProjectInstance projectInstance = new ProjectInstance(file.FullName);
if (!projectInstance.Targets.ContainsKey("Deploy") && !projectInstance.Targets.ContainsKey("Package"))
continue;
if (projectInstance.Targets.ContainsKey("Deploy"))
{
projectInstance.RemoveProperty("DeployToDatabase");
projectInstance.RemoveProperty("DeployToScript");
projectInstance.SetProperty("UseSandboxSettings", "true");
projectInstance.SetProperty("SandboxDeployToScript", "true");
projectInstance.SetProperty("FinalDeployToDatabase", "false");
projectInstance.SetProperty("FinalDeployToScript", "true");
projectInstance.SetProperty("FinalTargetConnectionString", "");
projectInstance.SetProperty("Platform", "AnyCPU");
projectInstance.SetProperty("Configuration", "Debug");
projectInstance.SetProperty("DeployToDatabase", "false");
projectInstance.SetProperty("DeployToScript", "true");
projectInstance.DefaultTargets.Add("Deploy");
}
else if (projectInstance.Targets.ContainsKey("Package"))
{
projectInstance.RemoveProperty("PublishDatabases");
projectInstance.SetProperty("Platform", "AnyCPU");
projectInstance.SetProperty("Configuration", "Debug");
projectInstance.SetProperty("PublishDatabases", "false");
projectInstance.DefaultTargets.Add("Package");
}
bool success = projectInstance.Build(null, logger, out results);
}
}