Dar*_*eny 5 msbuild visual-studio-2010
我有很多项目都加入了解决方案.每个项目都有自己的目录结构,csproj文件位于不同级别的文件夹结构中.每个csproj都指定了OutputPath属性.OutputPath - 是一个相对路径,它因项目而异,因此所有项目都具有相同的输出目录.如果我建立一个单独的项目,这是可行的.但如果我尝试构建解决方案文件,一切都会改变.在这种情况下,每个项目输出文件夹都不同(取决于该项目的OutputPath中的'.. \'数).
我知道,在某个时刻之前一切正常.没有人改变build.cmd和sln或csproj文件.但现在我有上述情况.
所以我的问题是 - 影响相对路径评估的因素是什么?我的意思是如何从该特定项目的csproj文件所在的文件夹开始强制评估相对的OutputPath.不是来自.sln文件所在的文件夹.
Let's assume I have following directory structure:
dir1
a.sln
dir2
a.csproj
dir21
dir3
b.csproj
Run Code Online (Sandbox Code Playgroud)
a.csproj的输出路径设置为'../../_bin',如果从a.csproj文件夹计算,它刚好在dir1之上b.csproj的输出路径设置为'../../../_bin'是相同的 - 如果从b.csproj计算,只是dir1
a.sln包含 - a.csproj和b.csproj.
当我运行msbuild时,我得到一个项目构建到'dir1 /../../_ bin'和b项目到'dir1 /../../../_ bin' - 项目文件的相对路径从解决方案计算文件位置,而不是项目文件.
好吧,我能够找出造成这种情况的原因。那是自定义 .targets 文件,它在任何 msbuild 开始时推断 SolutionDir 属性。我确实通过使用 MSBuild Explorer 发现了这一点。事实证明,该工具对我来说非常有用 - 我不知道我的系统上有第三方 .target 文件。
| 归档时间: |
|
| 查看次数: |
6175 次 |
| 最近记录: |