为什么MSBuild在本地复制所有DLL,但在构建服务器上它似乎忽略了CopyLocal=True?

为什么MSBuild在本地复制所有DLL,但在构建服务器上它似乎忽略了CopyLocal=True?,msbuild,Msbuild,当我在本地运行MSBuild v4时,它可以很好地构建并将所有项目和第三方DLL复制到我的网站BIN文件夹中 但是,当我在构建服务器上运行完全相同的脚本时,它不会将任何引用的项目DLL或第三方DLL复制到网站bin文件夹中 如何使MSBuild在两种环境上都正确复制?我的.NET4安装有问题吗 我的MSBuild文件中的编译如下所示: <Target Name="Compile"> <MSBuild Projects="..\MySolution.com.sln" Pr

当我在本地运行MSBuild v4时,它可以很好地构建并将所有项目和第三方DLL复制到我的网站BIN文件夹中

但是,当我在构建服务器上运行完全相同的脚本时,它不会将任何引用的项目DLL或第三方DLL复制到网站bin文件夹中

如何使MSBuild在两种环境上都正确复制?我的.NET4安装有问题吗

我的MSBuild文件中的编译如下所示:

<Target Name="Compile">
    <MSBuild Projects="..\MySolution.com.sln" Properties="Configuration=Debug">
    </MSBuild>
</Target>   

生成服务器能否到达您指定的源位置


如果它们在您的本地磁盘上,它将看不到它们;如果它们在共享磁盘上,它可能无法访问该共享或通过其他路径访问该共享?

这最终证明是一个愚蠢的问题。我猜VS2010项目文件不再需要特别地具有“Private”属性,因为我的文件不在那里

问题是,我使用MSBuild v3.5是偶然的,它需要这些属性


当我切换到在构建服务器上使用MSBuild v4时,问题就解决了。

GAC中的DLL是在构建服务器上,而不是在本地GAC中吗?在GAC中根据DLL生成时,复制本地规则容易混淆。您是否在生成服务器上通过TFS运行生成?希望我可以。。。我需要再等7个小时:)有一个技巧:将引用副本本地设置为false,然后再次设置为true,然后VisualStudio自动添加私有元数据。至少VS2010是这样的。。。