none
升级到最新版win10 VS中Build Events 不起作用 RRS feed

  • 问题

  • 今天升级到最新版win10  发现VS中post-build event command line 不起作用了,系统还原回去就可以

    start /b xcopy $(TargetPath) $(SolutionDir)Chison.UltraSound.Executable\bin\$(ConfigurationName)\plugins\ /h/e/r/y

    这个命令放到cmd里单独执行是可以的。

    用msbuild 编译,执行到xcopy时出现如图所示错误:

    2017年5月26日 10:20

全部回复

  • Hi Tom.Jia,

    感谢你在MSDN论坛发帖,因为你的问题涉及到msbuild问题,我将移到对应的论坛去。

    你能提供更详细的错误信息给我们吗?这样有助于解决问题,比如output 里面的log信息是什么,错误ID是什么?

    你这边截图,把这些重要信息给遮挡了。

    Best Regards,

    Hart


    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.

    2017年5月31日 8:03
  • Hi Tom.Jia,

    你的windows版本是多少?你可以在CMD中输入winver来查看当前系统版本。如果你使用Visual Studio 去编译会得到什么样的结果呢?Output的窗口中你可以看到错误日志,为了得到详细的错误信息,你可以将MSBuild project build log file verbosity改为Normal 或者Detailed(Tools->Options->Projects and Solutions->Build and Run).

    同时,我在我的windows 10, 1607版本上测试了你的command line, 没有重现你的问题,但是发现如果后面参数有/e则会报Cannot perform a cyclic copy这个错误,去掉/e之后命令执行成功。


    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.




    2017年6月1日 5:30
  • 谢谢你的答复  ,我在win10 1607版本也是好的 ,升级到1703 内部版本15063.296就不行了
    2017年6月4日 10:12
  • @Tom.Jia, 很抱歉因为周末原因回复的比较晚, 今天在升级windows 到1703版本之后测试发现和你同样的问题,研究log发现是因为使用MSBuild命令行无法读取到变量$(SolutionDir)的值,显示的是*Undefined*.

    但是使用Visual Studio Build 是可以的。这应该是一个MSBuild 的issue. 之前有类似的问题被修复了,可能因为windows的更新这个问题再次发生在MSBuild上. 我将这个问题报给Developer Community:https://developercommunity.visualstudio.com/content/problem/65435/solutiondir-macro-at-build-event-gives-undefined-w.html

    如果你什么需要补充的可以在这个问题之后添加评论,也可以根据这个来检查VS开发组的回复。

    Note:现在我们似乎不可以使用这个变量在新版本的windows中,我们可以退回之前的版本或者使用绝对路径而不去使用这个变量$(SolutionDir). 如果你对这个问题还有什么疑问请告诉我们,我们会尽可能帮助你解决。


    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.


    2017年6月6日 12:00
  • OS版本:1607

    VS版本:vs2017社区版

    1.打开vs2017新建一个WPF工程,名称为Test

    2.start /b xcopy $(TargetPath) $(SolutionDir)XXX\bin\$(ConfigurationName)\plugins\ /h/e/r/y

    该脚本拷贝到post-build event command line中

    3.MSBuild编译该工程

    执行结果如下:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>msbuild G:\Progect\Test\Test.sln
    Microsoft (R) Build Engine version 15.1.1012.6693
    Copyright (C) Microsoft Corporation. All rights reserved.

    Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
    Build started 6/7/2017 4:37:07 PM.
    Project "G:\Progect\Test\Test.sln" on node 1 (default targets).
    ValidateSolutionConfiguration:
      Building solution configuration "Debug|Any CPU".
    Project "G:\Progect\Test\Test.sln" (1) is building "G:\Progect\Test\Test\Test.csproj" (2) on node 1 (default targets).
    GenerateBindingRedirects:
      No suggested binding redirects from ResolveAssemblyReferences.
    MainResourcesGeneration:
    Skipping target "MainResourcesGeneration" because all output files are up-to-date with respect to the input files.
    CoreResGen:
      No resources are out of date with respect to their source files. Skipping resource generation.
    GenerateTargetFrameworkMonikerAttribute:
    Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
    CoreCompile:
    Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
    _CopyAppConfigFile:
    Skipping target "_CopyAppConfigFile" because all output files are up-to-date with respect to the input files.
    CopyFilesToOutputDirectory:
      Test -> G:\Progect\Test\Test\bin\Debug\Test.exe
    PostBuildEvent:
      start /b xcopy G:\Progect\Test\Test\bin\Debug\Test.exe G:\Progect\Test\XXX\bin\Debug\plugins\ /h/e/r/y
      G:\Progect\Test\Test\bin\Debug\Test.exe
      1 File(s) copied
    Done Building Project "G:\Progect\Test\Test\Test.csproj" (default targets).

    Done Building Project "G:\Progect\Test\Test.sln" (default targets).


    Build succeeded.
        0 Warning(s)
        0 Error(s)

    Time Elapsed 00:00:00.34

    4.Test.sln同级目录下应该生成一个XXX\bin\Debug\plugins\路径,并且Test.exe会拷贝到plugins下

    同样的操作在OS版本为1703的系统上应该执行不正确,因为我的电脑已经恢复到1607,所以暂时没法提供错误信息,如果你们有1703的系统可以尝试,应该可以重现这个问题。

    我这边也弄个1703的系统,再回复错误log

    2017年6月7日 8:56
  • Hi Tom.Jia, 你有看到我的上一个回复吗?我升级系统到1703,重现了你的问题,并提交这个问题给了VS Team。你可以查看上一个回复中的链接。


    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.


    2017年6月7日 9:15