【发布时间】:2011-11-22 17:24:36
【问题描述】:
我有一个基本的 MSBuild 脚本,其中包含一个项目编译/构建步骤。看起来像这样:
....
<ItemGroup>
<ProjectReferences Include="loc1\Project1.csproj"/>
<ProjectReferences Include="loc2\Project2.csproj"/>
<ProjectReferences Include="loc3\Project3.csproj"/>
</ItemGroup>
....
<Target Name="BuildProjects">
<Message Text="Beginning main project build"/>
<MSBuild Projects="@(ProjectReferences)" Targets="Build" Properties="Configuration=$(Configuration);ProjectBuild=$(ProjectBuild);AppDir=$(AppDir)">
<Output TaskParameter="TargetOutputs" ItemName="AssembliesBuilt"/>
</MSBuild>
<!--<CallTarget Targets="BuildToolkit"/>-->
</Target>
Project3.csproj 是一个 .NET 3.5 Web 服务项目。配置在命令行中传递。
首先是 System.Linq 无法解决的问题;我通过直接在项目文件中创建对System.Core 的引用来解决此问题(显然这种情况经常发生,需要进行此修复)。
现在,当我在调试模式下构建这个项目时,一切都很好。但是,当尝试在发布模式下构建时,它会像这样失败,其中可能会出现与各种程序集有关的这些消息:
Considered "c:\Program Files (x86)\Reference Assemblies\Microsoft\VST040\v8.0\MyReferencedProjectAssembly.dll", but it didn't exist.
对于许多引用,这种情况会发生多次。奇怪的是,发生这种情况后,我切换回调试模式,并且在发布模式发生后它无法再次构建。我必须从 MSBuild 文件中删除有问题的 Project3,再次运行(可行),然后将有问题的 Project3 重新添加回文件中,然后它才能在调试模式下再次工作。
我被难住了。有什么想法吗?
【问题讨论】: