简体   繁体   English

以编程方式发布版本(如ClickOnce),淘汰msbuild.exe

[英]Publish version programatically (like ClickOnce) whitout msbuild.exe

I need to programatically publish a version (of software?), in the way ClickOnce is doing it. 我需要以编程方式发布ClickOnce的版本(软件版本?)。 I have successfully done this by msbuild.exe: 我已通过msbuild.exe成功完成此操作:

msbuild /t:clean;publish /v:d /p:SolutionDir=D:\\BuildOutputDirectory\\ /p:PublishDir=D:\\BuildOutputDirectory\\ /p :PublishUrl=D:\\BuildOutputDirectory /p:InstallUrl=D:\\BuildOutputDirectory\\ D:\\Te mp\\Unive.Net\\Unive.Net\\Unive.Net.csproj msbuild / t:clean;发布/ v:d / p:SolutionDir = D:\\ BuildOutputDirectory \\ / p:PublishDir = D:\\ BuildOutputDirectory \\ / p:PublishUrl = D:\\ BuildOutputDirectory / p:InstallUrl = D:\\ BuildOutputDirectory \\ D:\\ Te mp \\ Unive.Net \\ Unive.Net \\ Unive.Net.csproj

In directory "BuildOutputDirectory" it has created a directory "Application files" and file setup.exe and file *.application. 在目录“ BuildOutputDirectory”中,已创建目录“应用程序文件”,文件setup.exe和文件* .application。 Can someone guide me how to achieve the same with BuildRequestData class or similar? 有人可以指导我如何使用BuildRequestData类或类似方法实现相同目标吗?

Please anyone help? 请任何人帮助?

var globalProperties = new Dictionary<string, string>
{
    // http://msdn.microsoft.com/en-gb/library/ms165431.aspx
    { "PublishDir", "BuildOutputDirectory\\" }
};
var projectInstance = new ProjectInstance(@"C:\Users\Ilya.Kozhevnikov\Dropbox\Unive.Net\Unive.Net\Unive.Net.csproj", globalProperties, null);

var buildManager = BuildManager.DefaultBuildManager;
var buildParameters = new BuildParameters { Loggers = new[] { new ConsoleLogger() } };
var buildRequestData = new BuildRequestData(projectInstance, new[] { "Publish" });
var buildResult = buildManager.Build(buildParameters, buildRequestData);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM