C# MSbuild和具有相同类库引用的多个项目
我有一个带有类库和两个windows服务的解决方案文件。所有服务都有对类库的项目引用 在我的构建文件中,我以发布模式构建每个服务,压缩文件并将zip文件复制到一个Web服务器,我们的生产服务器可以从该服务器下载zip文件 问题在于,只构建和部署了第一批服务。所有其他操作都会失败,并出现CSC:错误CS0006:找不到元数据文件“classlibrary.dll” 我做了一个测试解决方案,重现了这个问题。一个空的类库和两个空的控制台应用程序,它们都引用了类库 是因为临时目录相同吗?它适用于web项目和相同的临时目录 然后是这个构建文件C# MSbuild和具有相同类库引用的多个项目,c#,msbuild,visual-studio-2012,C#,Msbuild,Visual Studio 2012,我有一个带有类库和两个windows服务的解决方案文件。所有服务都有对类库的项目引用 在我的构建文件中,我以发布模式构建每个服务,压缩文件并将zip文件复制到一个Web服务器,我们的生产服务器可以从该服务器下载zip文件 问题在于,只构建和部署了第一批服务。所有其他操作都会失败,并出现CSC:错误CS0006:找不到元数据文件“classlibrary.dll” 我做了一个测试解决方案,重现了这个问题。一个空的类库和两个空的控制台应用程序,它们都引用了类库 是因为临时目录相同吗?它适用于web项
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildCommunityTasksPath>$(MSBuildProjectDirectory)\Tools\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
</PropertyGroup>
<Import Project="Tools\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<PropertyGroup>
<ExtensionTasksPath>$(MSBuildProjectDirectory)\Tools\MSBuild.ExtensionPack\</ExtensionTasksPath>
</PropertyGroup>
<Import Project="Tools\MSBuild.ExtensionPack\MSBuild.ExtensionPack.tasks" />
<PropertyGroup>
<ProjectName>MSbuild test</ProjectName>
</PropertyGroup>
<Target Name="DeployAll" >
<Message Text="DeploymentPackage $(ProjectName)" />
<PropertyGroup>
<TempDeploymentDirectory>$(MSBuildProjectDirectory)\DeploymentPackage\</TempDeploymentDirectory>
<ProjectFile1>ConsoleApplication1\ConsoleApplication1.csproj</ProjectFile1>
<ProjectFile2>ConsoleApplication2\ConsoleApplication2.csproj</ProjectFile2>
</PropertyGroup>
<RemoveDir Directories="$(TempDeploymentDirectory)" />
<MSBuild Projects="$(ProjectFile1)" Properties="Configuration=Release;OutDir=$(TempDeploymentDirectory)" Targets="Clean;Build"/>
<!-- Zipping copying files removed for readability -->
<RemoveDir Directories="$(TempDeploymentDirectory)" />
<MSBuild Projects="$(ProjectFile2)" Properties="Configuration=Release;OutDir=$(TempDeploymentDirectory)" Targets="Clean;Build"/>
</Target>
</Project>
$(MSBuildProjectDirectory)\Tools\MSBuildCommunityTasks
$(MSBuildProjectDirectory)\Tools\MSBuild.ExtensionPack\
MSbuild测试
$(MSBuildProjectDirectory)\DeploymentPackage\
ConsoleApplication1\ConsoleApplication1.csproj
ConsoleApplication2\ConsoleApplication2.csproj
在每个应用程序用于演示项目之前构建类库,但不用于实际项目
在我的项目中,解决方案是为每个服务使用不同的输出目录。在脚本中,您在哪里构建类库?我没有。它应该被构建,因为它是一个项目参考,并且在第一个应用程序中运行良好。-在真正的构建文件中,我们有很多目标依赖关系,在这些依赖关系中我们运行单元测试并构建所有解决方案项目。尝试在其他类库之前强制生成类库,看看会发生什么。