Dav*_*vy8 26 prebuild visual-studio-2008
我相信问题记录在这里 移动到这里,看起来它可能是视觉工作室中的一个错误,但我想知道是否有人知道一个解决方法.
基本上我在预建事件中一个接一个地跟随以下两行(除其他外).
"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder1\Project1.csproj"
"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder2\Folder3\Project2.csproj"
Run Code Online (Sandbox Code Playgroud)
第一个成功,另一个失败说The command ""C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "*Undefined*Folder2\Folder3\Project2.csproj"" exited with code 1..
编辑:
找出问题是由于MSBuild本身不知道宏,因此其他项目之一与预建的线路相同.
All*_*sen 61
我通过更换所有固定这$(SolutionDir)与$(ProjectDir)..\.
这是由于MSBuild独立运行每个项目,因此不是解决方案.它在VS2010中运行良好,但在构建服务器上却没有.
Art*_*tur 10
浪费了很多时间来为这个问题找到完美的解决方案。使用Directory.Build.props。
在您的sln位置文件夹中创建一个带有名称的文件Directory.Build.props并将此代码放入其中:
<Project>
<PropertyGroup>
<SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
该文件将被您的所有csproj文件自动选取并定义(SolutionDir)属性。
您没有指定这种情况是在许多项目中发生还是仅在一两个项目中发生。
如果仅在一两个项目中,临时解决方法可能是将 $(SolutionDir) 替换为 Folder2 所在的显式路径。例如,类似以下内容:
"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "C:\AllSolutions\ExampleSolutions\Folder2\Folder3\Project2.csproj"
Run Code Online (Sandbox Code Playgroud)
但为您的项目提供正确的路径。
| 归档时间: |
|
| 查看次数: |
10517 次 |
| 最近记录: |