3

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

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

4

2 回答 2

2

最佳实践是不要在构建时引用来自 GAC 的第 3 方程序集。相反,让所有第 3 方程序集从一个公共源代码控制文件夹中引用。

如果您使用编辑器打开项目,理想情况下您将为HintPath每个 3rd-party 参考提供一个。IE:

<Reference Include="Microsoft.Practices.Unity">
  <HintPath>..\..\..\3rd Party\Prism4\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
于 2012-03-20T11:28:16.017 回答
0

This should work

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

The relevant bit would be the 'ReferencePath' parameter ofc :)

于 2012-03-20T10:41:17.000 回答