Skip to end of metadata

 

Go to start of metadata

 

You can integrate SmartAssembly in your build process.

You set up your project in SmartAssembly once, and you can then build your assembly in your normal MSBuild process. The settings you chose in the SmartAssembly project are applied without needing to run SmartAssembly separately.

Note that the SmartAssembly task should be the last stage of your build process. Because of the way SmartAssembly changes your assembly, running other tasks after SmartAssembly is not supported. (An exception to this is assembly-signing tools, if you choose not to sign your code with SmartAssembly).

To integrate SmartAssembly directly into the build process, follow these steps:

  1. Create your project in SmartAssembly (see Working with projects) and set the project options (see Working with project settings).
  2. Open your application's .csproj or .vsprojfile in an XML editor.
    The .csproj or .vsproj file is actually a MSBuild XML file that you can edit to add SmartAssembly to the build tasks. For more information about the MSBuild XML schema, see the MSBuild documentation on MSDN.
  3. Add references to SmartAssembly to your C# or VB.NET project file, as follows. 

    Note that the <UsingTask> element includes SmartAssembly's major version number. This page has been written for SmartAssembly 6.x. If you are using a different version of SmartAssembly, you will need to change the version number specified in the <UsingTask> element. For example, if you use SmartAssembly 5.5, change the version to Version=5.0.0.0

     

    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        ...
      </PropertyGroup>
      ...
      <ItemGroup>
        ...
      </ItemGroup>
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
      <UsingTask
     TaskName="SmartAssembly.MSBuild.Tasks.Build"
    AssemblyName="SmartAssembly.MSBuild.Tasks, Version=6.0.0.0,
    Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
      <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
        <SmartAssembly.MSBuild.Tasks.Build ProjectFile="c:\path\to\project.saproj"/>
      </Target>
    </Project>

     

  4. Edit the following line (near the bottom of the XML which you just added to the project), setting the ProjectFile attribute to the path to your *.saproj file:
    <SmartAssembly.MSBuild.Tasks.Build ProjectFile="c:\path\to\project.saproj"/>
  5. If required, add any of the following optional attributes to the same element:

    OverwriteAssembly

    Set to True if you want to overwrite the original assembly with the obfuscated one.

    If this option is not set, or set to False, SmartAssembly uses the destination file name from the .saproj project.

    If you set this option to True, SmartAssembly ignores the OverwriteAssembly attribute, if set.

    Input

    If this option is set, SmartAssembly will process the assembly specified as this attribute's value.

    If this option is not set, SmartAssembly will process the assembly specified in the .saproj project is used.

    This is useful if you want to build an assembly using exactly the same settings as those you chose for a different assembly.

    Output

    If this option is set, SmartAssembly will use this attribute's value as the file name when saving the built assembly.

    If this option is not set, SmartAssembly will use the file name in the .saproj file when saving the built assembly.

    This attribute is ignored if the OverwriteAssembly property is set to True.

    This option is useful if you want to save a test build to a different path from other builds.

    MarkAsReleased

    (Deprecated)

    This option was used in SmartAssembly 6.2 and earlier to preserve map files (see About map files).

    SmartAssembly 6.5 stores map files permanently, so this option is ignored.

    A diff showing the added lines in a .csproj file is shown below.

    Build your assembly with MSBuild. SmartAssembly is run automatically, using the settings in your SmartAssembly project file.

    If you use a .mdb file for your SmartAssembly database, ensure that Visual Studio is run as an administrator when running MSBuild.

Using SmartAssembly with MSBuild的更多相关文章

  1. Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

    所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...

  2. 使用roslyn代替MSBuild完成解决方案编译

    原本我是使用批处理调用 MSBuild 完成解决方案编译的,新版的 MSBuild 在 Visual Studio 2015 会自带安装. 当然在Visual Studio 2015 中,MSBuil ...

  3. MSBuild 编译 C# Solution

    Microsoft(R) 生成引擎版本 4.6.1055.0 [Microsoft .NET Framework 版本 4.0.30319.42000] 版权所有 (C) Microsoft Corp ...

  4. UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包

    背景 项目上需要做UWP的自动安装包,在以前的公司接触的是TFS来做自动build. 公司要求用Jenkins来做,别笑话我,之前还真不晓得这个东西. 会的同学请看一下指出错误,不会的同学请先自行脑补 ...

  5. MSBuild的简单介绍与使用

    MSBuild 是 Microsoft 和 Visual Studio的生成系统.它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台.MSBuild平台的主要涉及到三部分:执行引擎.构 ...

  6. Jenkins学习九:Jenkins插件之构建MSBuild

    Jenkins是Java语言编写的,一直好奇是否可以构建NET语言的项目,目前只了解到有一个插件MSBuild支持构建NET项目. 一.Jenkins安装插件MSBuild 二.VS构建CsharpH ...

  7. CCNET+MSBuild+SVN实现每日构建

    最近开始将源代码迁移到SVN,于是便考虑到如何从SVN定期获取源码,自动编译并部署以减轻工作量并提高工作效率.通过多方搜集资料并进行研究,基本实现了这个功能.对于每日构建的概念就不具体展开了,可以在各 ...

  8. Msbuild项目集成右键菜单编译

    DS1.背景:   我们为什么要将VS2008命令行编译.sln文件集成到右键菜单呢? 原因一:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此. 原因二:有 ...

  9. 集成Visual Studio/MSBuild的开发/发布流程和 FIS3

    谁不想让自己的网站速度更快?为此需要多方面的优化,但优化又会增加开发工作量.Fis3 是很不错的前端优化工具,能够让前端的优化变得自动方便,解决前述问题.Fis3是百度开发的,开源的,在国内比较六流行 ...

随机推荐

  1. ABC156 F - Modularness

    题目链接 题意还是比较清楚的,给你q个询问,对每组询问的模数和初始值不同,求满足条件\(a_j~\textrm{mod}~m_i < a_{j + 1}~\textrm{mod}~m_i,(0 ...

  2. 同步I/O和异步I/O

    同步I/O包括:阻塞,非阻塞,多路复用 阻塞模型:给你送的外卖到了,给你打电话,你不去取,外卖小哥一直在那等你,直到你来,形成阻塞,当然应该给外卖小哥点赞,哈哈哈哈!! 非阻塞模型:取外卖的主人非常饿 ...

  3. PHP如何实现处理过期或者超时订单的,并还原库存

    订单是我们在日常开发中经常会遇到的一个功能,最近在做一个订单过期与超时的开发.订单过期与超时就不用我解释了吧,其实两者都是同一个问题来着,就是订单未支付的处理,我们要做的是对这些未支付的订单到了一定时 ...

  4. 用python来更改windows开机密码

    今天教大家用python脚本来控制小伙伴们windows电脑的开机密码.没错就是神不知鬼不觉,用random()随机生成的密码,只有你自己知道哦~ 代码呢分两部分,一部分是client端跟server ...

  5. Windows 查看并关闭占用指定端口的程序

    windows关闭端口的小工具: 链接:https://pan.baidu.com/s/1ZGL4cdSluy0lbi3tDERUvA 提取码:spxy 查看指定端口的使用情况 netstat -an ...

  6. idea 导入svn中java WEB项目

    1.打开idea 2.填写svn路径 3.指定本地路径 4.选择1.8 format 5.添加jdk 6.配置tomcat启动项目 File -- Project Structure

  7. 关于浮动&关于BFC规范&whyoverflow清除浮动

    https://www.cnblogs.com/smivico/p/7656270.html 浮动 https://www.jianshu.com/p/4b93eecb090e BFC https:/ ...

  8. GRE Over IPSec配置

    路由器GRE over IPSec站点到站点VPN         问题分析:对于前面的经典的IPSec VPN的配置来说,兼容性较好,适合于多厂商操作的时候,但是这种经典的配置方式不适合在复杂的网路 ...

  9. 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库

    C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...

  10. 与英特尔分道扬镳,苹果的5G业务掉队了吗?

    5G概念已经大热,越来越多的厂商推出相关产品,中国骄傲之华为不仅在5G通信标准制定方面参与感非常强,也先于竞争对手推出5G智能终端,连同三星/Vivo等也纷纷推出5G终端,而作为智能手机市场绝对的利润 ...