发布后事件不与msbuild.exe一起使用

Moh*_*eem 7 .net c# asp.net msbuild

我有一个post build事件,写入一个文本文件.当我从Visual Studio构建项目时它工作正常.但是当我使用msbuild.exe时,Post构建事件不会写入文件.我正在使用带有以下参数的msbuild:

msbuild.exe TestProj.Web.csproj /p:Configuration=Release /p:OutDir=C:\TestProj\bin\ /p:WebProjectOutputDir=C:\TestProj\ /p:DebugSymbols=false /p:DebugType=None
Run Code Online (Sandbox Code Playgroud)

post build事件如下所示:

  <PropertyGroup Condition="'$(BUILD_NUMBER)'==''">
    <COMPUTERNAME>None</COMPUTERNAME>
    <BRANCH>None</BRANCH>
    <BUILD_NUMBER>None</BUILD_NUMBER>
  </PropertyGroup>
  <Target Name="AfterBuild">
    <WriteLinesToFile File="$(ProjectDir)$(OutputPath)\VersionInfo.txt" Overwrite="true" Lines="Project&#xD;&#xA;Created On $(COMPUTERNAME)&#xD;&#xA;Branch is $(BRANCH)&#xD;&#xA;Version Is $(BUILD_NUMBER)" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

Moh*_*eem 4

我已经通过将任务更改为来修复它

<WriteLinesToFile File="$(OutDir)\VersionInfo.txt" ...... />
Run Code Online (Sandbox Code Playgroud)

  • 如有疑问,您可以将相对路径(或变量中的值)转换为绝对路径,然后显示它。它将显示尝试写入位置的完整路径。 (3认同)
  • &lt;ConvertToAbsolutePath Paths="..\"&gt; &lt;!-- 这里是一些相对路径 --&gt; &lt;Output TaskParameter="AbsolutePaths" PropertyName="MyAbsolutionPathProperty"/&gt; &lt;/ConvertToAbsolutePath&gt; &lt;Message Text="'MyAbsolutionPathProperty' = '$ (MyAbsolutionPathProperty)'" /&gt; (2认同)