在编译时将参考路径从GAC更改为文件夹

时间:2011-09-20 10:30:57

标签: visual-studio-2010 reference msbuild compile-time build-server

我有一个依赖于某些第三方库的项目。这些程序集在GAC中注册。到目前为止,Everythings工作正常。 但是,当在构建服务器上构建项目时,第三方程序集不在GAC中,而是在一个额外的文件夹(称为外部)中,该文件夹也位于构建服务器使用的SVN存储库中。 / p>

由于MSBuild无法找到这些程序集,因此构建将失败。有没有办法告诉构建服务器上的MSBuild使用此文件夹中的程序集而不是GAC?

2 个答案:

答案 0 :(得分:2)

最佳做法是 NOT 在构建时从GAC引用第三方程序集。相反,请从公共源控制文件夹中引用所有第三方程序集。

如果您使用编辑器打开项目,理想情况下,每个第三方参考都会有HintPath。即:

<Reference Include="Microsoft.Practices.Unity">
  <HintPath>..\..\..\3rd Party\Prism4\Microsoft.Practices.Unity.dll</HintPath>
</Reference>

答案 1 :(得分:0)

这应该有效

MSBuild.exe "%BUILD_TARGET%" /t:rebuild /p:OutputPath="%OUTPUT_PATH%" /p:ReferencePath="%REF_PATH%"

相关位将是c的“ReferencePath”参数:)