• 代码修改之后MSbuild编译不出最新的dll解决方法


    问题:

    使用jenkins发布的时候,开发不断反馈自己修改的文件使用jenkins没有发布到测试环境。经过查证发现使用MSBUILD编译的时出现修改的文件编译出的日期不是最新日期,但是使用VS编译就不会出现此问题。

    解决方案:

    在Project里面添加元素:添加InitialTargets="Clean;Compile"之后解决。

    我理解是初始目标(InitialTargets)需要进行清理(Clean),编译(Compile),类似在手动解决方案里面右击鼠标进行:清理(Clean),编译(Compile)。也就是使用代码代替手动操作的第一步。

    对我有启示的帖子:
    https://technet.microsoft.com/zh-cn/ms171463

    VS生成的各种方法及定义:
    -- 选择“生成”或“生成解决方案”,将只编译自上次生成以来更改过的那些项目文件和组件。
    注意
    如果解决方案中包括多个项目,则“生成”命令将变成“生成解决方案”。
    选择“重新生成解决方案”,将首先“清理”解决方案,然后生成所有项目文件和组件。
    选择“清理解决方案”将删除所有中间文件和输出文件,只留下项目文件和组件文件,以后可以从这些文件生成中间文件和输出文件的新实例。

    使用msbuild编译源代码脚本描述

    注意:Release与Debug模式生成文件大小不一样。Debug(除错)不是Debuge(调试器)。Release意思:释放;发布;发行;放开。

    命令行:

    C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild "D:JenkinsReleaseAgencyHKHK-Centa-Agency-Web-SIMScriptwcf.msbuild" /p:Environment=Production 

     wcf.msbuild脚本描述

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="Clean;Compile">

    <ItemGroup>
    <BuildArtifactsDir Include="..Releasewcf\" />
    <SolutionFile Include="D:jenkinsworkspaceHK-Centa-Agency-Web-SIMsourcecodeCenta.Agency.ServiceCenta.Agency.Service.sln" />
    <BuildBinDir Include="D:jenkinsworkspaceHK-Centa-Agency-Web-SIMsourcecodeCenta.Agency.ServiceBin\" />
    </ItemGroup>

    <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <BuildPlatform Condition=" '$(BuildPlatform)' == '' ">Any CPU</BuildPlatform>
    </PropertyGroup>

    <Target Name="Compile" DependsOnTargets="Init">
    <MSBuild Projects="@(SolutionFile)" Targets="Rebuild"
    Properties="OutDir=%(BuildArtifactsDir.FullPath);
    Configuration=$(Configuration);
    Platform=$(BuildPlatform)" />
    </Target>

    <Target Name="Init" DependsOnTargets="Clean">
    <MakeDir Directories="@(BuildArtifactsDir)" />
    <MakeDir Directories="@(BuildBinDir)" />
    </Target>

    <Target Name="Clean">
    <RemoveDir Directories="@(BuildArtifactsDir)" />
    <RemoveDir Directories="@(BuildBinDir)" />
    </Target>

    </Project>

  • 相关阅读:
    Tomcat:-Djava.net.preferIPv4Stack=true只支持ipv4
    centos解决bash: service: command not found 错误
    centos8重启网络服务
    项目中使用的二维码图片无法展示,查看图片链接报错500
    ERROR: ld.so: object ‘/usr/local/lib/libs.so‘ from /etc/ld.so.preload cannot be preloaded: ignore
    设置好ftp后用xftp连接提示无法打开,无法显示远程文件夹
    Linux 查看登录日志及登录失败用户的ip
    accept4() failed (24: Too many open files)
    [Err] 2006
    webpack loader配置篇
  • 原文地址:https://www.cnblogs.com/muer/p/10063367.html
Copyright © 2020-2023  润新知