我有一个项目保存到我希望能够发布的文件位置。该项目具有所有发布属性集,我希望使用这些属性(URL等..)
我目前有以下代码来创建Build:
string projectFileName = @"C:\ePortfolio_Client\ePortfolio_Client.vbproj";
var pc = new ProjectCollection();
pc.SetGlobalProperty("Configuration", "Release");
pc.SetGlobalProperty("Platform", "Any CPU");
BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), new BuildRequestData(new ProjectInstance(projectFileName), new string[] { "Rebuild" }));
但我真的需要进一步采取这一步并发布它。
我遇到过命名空间 Microsoft.Build.Tasks.Deployment.ManifestUtilities 但是我不知道如何将它用于我需要的东西?
修改
我有一些建议,但仍然没有做到。我现在有以下设置:
我有一个项目导出到文件位置,我正在编写一个将发布此文件的应用程序。
在我希望发布的项目中,我做了以下更改:
vbproj 文件: 我添加了以下内容
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
在一个单独的Web项目中,我创建了一个pubxml文件并将其复制到我想要发布的项目中。其中包含以下内容:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>\\ **Location to publish the Project ** \</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
上面提到的vbproj文件已经包含了我想要使用的发布设置,所以我遇到的一个问题是 - 我是否需要将它们复制到这个pubxml文件中?
从应用程序开始编写(发布项目) - 我使用以下内容启动构建:
string projectFileName = Properties.Settings.Default.SolutionLocation + @"\ePortfolio_Client\ePortfolio_Client.vbproj";
var pc = new ProjectCollection();
pc.SetGlobalProperty("Configuration", "Release");
pc.SetGlobalProperty("Platform", "Any CPU");
pc.SetGlobalProperty("PublishProfile", "ePublish");
pc.SetGlobalProperty("DeployOnBuild", "True");
pc.SetGlobalProperty("DeployTarget", "MSDeployPublish");
BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), new BuildRequestData(new ProjectInstance(projectFileName), new string[] { "Rebuild" }));
这似乎构建了这个项目,但我仍然没有得到一个出版物。 我希望这个额外的细节能让人们更多地帮助我实现这个目标!