我正在尝试让MSBuild处理刚刚转移到TFS2008的项目。解决方案是巨大的,因此它分为5个团队项目,A-E。每个人只有一个解决方案,但有几个项目。 A首先建立B-E。我们需要构建所有内容的调试版本和发布版本,这很好,但是当我们在发布模式下编译A时,它使用B-E的调试版本。查看了A中项目的proj文件后,它们的程序集引用已设置为指向B-E中库的调试版本。有没有办法使用MSBuild proj文件来发布B-E中项目的发布版本?
到目前为止,我已经尝试添加
<PropertyGroup>
到MSBuild proj文件,但它没有任何区别。有什么建议吗?
<AssemblySearchPaths>
$(Configuration)
$(AssemblySearchPaths)
</AssemblySearchPaths>
</PropertyGroup>
答案 0 :(得分:3)
(如果您想在.prof文件中完成所有操作,这是另一种选择)
您可以为每个属性组设置各种配置的参考路径。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <ReferencePath>c:\blah\blah\Path\To\Debug\</ReferencePath> </PropertyGroup>您应该已经在.proj文件中有条件属性组,所以只需添加refernece路径位给他们。您可以使用半冒号分隔多个路径。<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <ReferencePath>c:\blah\blah\Path\To\Release\</ReferencePath> </PropertyGroup>
答案 1 :(得分:2)
我认为您可以这样做:
<PropertyGroup> <SomeReferencePath>..\Your\Other\Build\Path\</LibraryReference> </PropertyGroup>然后将其包含在目标中:
Properties="ReferencePath=$(SomeReferencePath)"这将指示编译器查看该引用路径以解析其引用的程序集。
我认为= :))
[编辑:这将全部包含在构建所有子项目的新msbuild脚本中。]