首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建和发布之间的MSBuild自定义(模糊)步骤

构建和发布之间的MSBuild自定义(模糊)步骤
EN

Stack Overflow用户
提问于 2015-04-02 23:16:34
回答 1查看 1.3K关注 0票数 1

我有一个在CI服务器上构建的web应用程序(WebAPI web服务)。它使用VS2013、发布到文件系统的发布配置文件(*.pubxml)和CI服务器任务中的以下命令构建和发布。

代码语言:javascript
复制
MSBuild %ProjectPath%/MyApp.sln /t:Clean,Build /p:Configuration=Release;DeployOnBuild=True;PublishProfile=TAGBIN;VisualStudioVersion=12.0

但是,我还需要对软件进行模糊处理,模糊处理程序(Red Gate Smart Assembly)是通过放在csproj文件中的以下xml调用的。

代码语言:javascript
复制
<UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName="SmartAssembly.MSBuild.Tasks, Version=6.0.0.0,&#xD;&#xA;Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
<Target Name="PostBuildEvent" Condition=" '$(Configuration)' == 'Release' ">
    <SmartAssembly.MSBuild.Tasks.Build ProjectFile="MyApp.saproj" />
</Target>

这似乎可以很好地构建和发布,但是在检查命令行输出时,我注意到发布发生在混淆之前。

显然,混淆需要在构建之后发生,但在发布之前,这是可能的吗?

我尝试了一些方法,包括编辑*.pub.xml文件以通过“BuildDependsOn”节点调用模糊处理,但这会导致模糊处理在构建之前运行。

代码语言:javascript
复制
<BuildDependsOn>        
    Obfuscate;
    $(BuildDependsOn);
</BuildDependsOn>

似乎不可能将构建从发布中分离出来,目前我唯一的选择是构建两次,第二次发布从第一次构建中提取模糊的文件。

EN

回答 1

Stack Overflow用户

发布于 2015-04-08 00:25:25

在MSBuild 4.0及以上版本中,您可以使用BeforeTargetsAfterTargetscontrol target build order

下面的示例介绍了在构建之后但在发布之前执行的新构建步骤:

代码语言:javascript
复制
<Target Name="MyNewBuildStep" AfterTargets="CoreBuild" BeforeTargets="Publish">
    <Message Text="Executing new build step" />
</Target>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29416514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档