使用TeamCity编译我的MSBuild XML任务脚本时,出现以下错误:
当我在本地运行时,它是正常工作的。
当我将本地输出与构建服务器输出进行比较时,构建服务器上缺少一些文件。例如,global.asax文件在构建服务器的输出目录中缺失(但在本地编译时没有问题)。这是为什么呢?
以下是我的当前MSBuild脚本:
我可以在本地运行这个脚本,而且似乎工作正常(没有生成错误)。但是当我在构建服务器上运行它时,会出现MSBuild错误MSB3021。
现在,当我将本地构建输出文件与服务器构建输出文件进行比较时,服务器输出文件没有那么多。例如,全局.ASAX文件在我的构建服务器的输出中缺失。为什么它在本地对我有效,但在我的TeamCity构建服务器上无效?有什么区别,我该如何修复?
我注意到TeamCity构建代理错误消息有一个奇怪的目录路径: "C:\MSBUILDRELEASE\myWebProject1\bin\myWebProject1.dll"
^ 在bin文件夹之前有两个斜杠。我没有在任何地方指定这个。是什么原因?我有一种感觉我没有正确构建我的Web项目(也许需要使用不同的任务方法?)。它在本地似乎工作正常,但在我的构建服务器上却不行。
我是否正确构建我的Web项目?这些只是用于Web服务(ASMX)部署的简单Web项目。帮帮我?
[10:43:03]: myWebProject1\ myWebProject 1 .csproj (3s)
[10:43:07]: [ myWebProject1\ myWebProject1 .csproj] _CopyWebApplicationLegacy
[10:43:07]: [_CopyWebApplicationLegacy] Copy
[10:43:07]: [Copy] C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets(131, 5): error MSB3021: Unable to copy file "obj\Release\myWebProject1.dll" to "C:\MSBUILDRELEASE\myWebProject1\\bin\myWebProject1.dll". Could not find file 'obj\Release\myWebProject1.dll'.
当我在本地运行时,它是正常工作的。
当我将本地输出与构建服务器输出进行比较时,构建服务器上缺少一些文件。例如,global.asax文件在构建服务器的输出目录中缺失(但在本地编译时没有问题)。这是为什么呢?
以下是我的当前MSBuild脚本:
<?xml version="1.0" encoding="utf-8"?>
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="Build">
<PropertyGroup>
<OutputDir>C:\MSBUILDRELEASE</OutputDir>
</PropertyGroup>
<ItemGroup>
<ProjectToBuild Include="UtilityApp.sln" >
<Properties>OutputPath=$(OutputDir);Configuration=MSBuildRelease;Platform=x86</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"/>
<CallTarget Targets="Publish WebProject1" />
<CallTarget Targets="Publish WebProject2" />
</Target>
<Target Name="Publish WebProject1">
<RemoveDir Directories="$(OutputFolder)"
ContinueOnError="true" />
<MSBuild Projects="WebProject1\WebProject1.csproj"
Targets="ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=$(OutputDir)\WebProject1\;
OutDir=$(OutputDir)\WebProject1\;Configuration=Release;Platform=AnyCPU" />
</Target>
<Target Name="Publish WebProject2">
<RemoveDir Directories="$(OutputFolder)"
ContinueOnError="true" />
<MSBuild Projects="WebProject2\WebProject2.csproj"
Targets="ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=$(OutputDir)\WebProject2\;
OutDir=$(OutputDir)\WebProject2\;Configuration=Release;Platform=AnyCPU" />
</Target>
</Project>
我可以在本地运行这个脚本,而且似乎工作正常(没有生成错误)。但是当我在构建服务器上运行它时,会出现MSBuild错误MSB3021。
现在,当我将本地构建输出文件与服务器构建输出文件进行比较时,服务器输出文件没有那么多。例如,全局.ASAX文件在我的构建服务器的输出中缺失。为什么它在本地对我有效,但在我的TeamCity构建服务器上无效?有什么区别,我该如何修复?
我注意到TeamCity构建代理错误消息有一个奇怪的目录路径: "C:\MSBUILDRELEASE\myWebProject1\bin\myWebProject1.dll"
^ 在bin文件夹之前有两个斜杠。我没有在任何地方指定这个。是什么原因?我有一种感觉我没有正确构建我的Web项目(也许需要使用不同的任务方法?)。它在本地似乎工作正常,但在我的构建服务器上却不行。
我是否正确构建我的Web项目?这些只是用于Web服务(ASMX)部署的简单Web项目。帮帮我?