none
发布网站,使用Release模式,站点下bin目录dll不会复制问题 RRS feed

  • 问题

  • Web站点 WxShop,使用IOC加载接口实现层,Web层只引用接口,不引用接口实现层

    在Debug模式下,就会发现编辑时实现层不会自动复制到web/bin下,所以在类库属性上添加后期生成命令

    copy $(TargetDir) $(SolutionDir)WxShop\bin\
    copy $(TargetDir) $(SolutionDir)UnitTestProject\$(OutDir)

    这样添加后,Debug模式下运行没问题了,但一选择发布网站,发现接口实现层dll没有复制到发布目录!

    发布时不复制Web\bin目录下的东西???

    我后来添加了一个命令 copy $(TargetDir) $(SolutionDir)WxShop\obj\$(ConfigurationName)

    也没啥作用,求解决方案。

    下面是发布时vs输出:

    1>------ 已启动生成:  项目: WxShop.Common, 配置: Release Any CPU ------
    2>------ 已启动生成:  项目: WxShop.IService, 配置: Release Any CPU ------
    2>  WxShop.IService -> E:\Develop\tool\WeiWinDemo\WxShop.IService\bin\Release\WxShop.IService.dll
    1>  WxShop.Common -> E:\Develop\tool\WeiWinDemo\WxShop.Common\bin\Release\WxShop.Common.dll
    3>------ 已启动生成:  项目: WxShop, 配置: Release Any CPU ------
    3>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3245: 未能解析此引用。未能找到程序集“Microsoft.Web.Mvc.FixedDisplayModes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。
    3>  WxShop -> E:\Develop\tool\WeiWinDemo\WxShop\bin\WxShop.dll
    4>------ 发布已启动:  项目: WxShop, 配置: Release Any CPU ------
    4>正在连接到 E:\develop\Publish\WeixinDemo...
    4>已使用 E:\Develop\tool\WeiWinDemo\WxShop\Web.Release.config 将 Web.config 转换为 obj\Release\TransformWebConfig\transformed\Web.config。
    4>正在将所有文件都复制到以下临时位置以进行打包/发布:
    4>obj\Release\Package\PackageTmp。
    4>正在删除现有文件...
    4>正在发布文件夹 /...
    4>正在发布文件夹 bin...
    4>正在发布文件夹 bin/zh-Hans...
    4>正在发布文件夹 config...
    4>正在发布文件夹 css...
    4>正在发布文件夹 Js...
    4>正在发布文件夹 Services...
    4>正在发布文件夹 Test...
    4>正在发布文件夹 Views...
    4>正在发布文件夹 Views/Account...
    4>正在发布文件夹 Views/Demo...
    4>正在发布文件夹 Views/Home...
    4>正在发布文件夹 Views/My...
    4>正在发布文件夹 Views/Pay...
    4>正在发布文件夹 Views/Product...
    4>正在发布文件夹 Views/Shared...
    4>正在发布文件夹 Views/ShoppingCart...
    4>Web 应用已成功发布 file:///E:/develop/Publish/WeixinDemo


    One world, one dream!

    2016年12月1日 2:06

答案

  • 你好,

    可以试试用AfterBuild target 中增加一个copy的动作。右击Project --> Unload Project --> 右击Project --> Edit xxxx.csporj

    在项目文件中增加 下面的代码。

    <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
      <Copy SourceFiles="$(TargetPath)" DestinationFolder="c:\目标地址" />  
     </Target>

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月1日 5:39
    版主

全部回复

  • 发布时好像没有编译实现层,难道是因为这个原因???

    One world, one dream!

    2016年12月1日 2:09
  • 我设置了项目依赖项,发现接口实现层也编译了,后期事件命令也招行了,但发布目录还是没有实现层dll!!!


    One world, one dream!

    2016年12月1日 2:19
  • 调整要部署的项,可以复制所有文件,但这会把所有文件夹都复制过去,求更好的解决方法。。。

    One world, one dream!

    2016年12月1日 2:54
  • "copy $(TargetDir) $(SolutionDir)UnitTestProject\$(OutDir)

    这样添加后,Debug模式下运行没问题了,但一选择发布网站,发现接口实现层dll没有复制到发布目录!"

    Post-Build 命令行是适合于Debug或Release生成方式,而不适合于Publish发步网站。

    所以,本页面中您的第二张图显示的是接口实现层被复制Release目录中。

    我的方案是将所有项目的dll生成到同一个目录中,这样发布时可减少文件复制的麻烦,但仍旧需要手工或自动(写post-build事件复制文件)将编译后的dll复制到web/bin目录中。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月1日 5:26
  • 你好,

    可以试试用AfterBuild target 中增加一个copy的动作。右击Project --> Unload Project --> 右击Project --> Edit xxxx.csporj

    在项目文件中增加 下面的代码。

    <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'">
      <Copy SourceFiles="$(TargetPath)" DestinationFolder="c:\目标地址" />  
     </Target>

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月1日 5:39
    版主