在csproj中自动生成IntermediateOutputPath

时间:2017-03-10 05:53:20

标签: c# git visual-studio csproj

git更新代码后,我在csproj中出错,因为file路径不存在。以下是启动错误的代码:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'ZAL_Release|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\Release\bin\soft\</OutputPath>
<DefineConstants>TRACE;ZAL</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Optimize>true</Optimize>
<IntermediateOutputPath>C:\Users\HARRY~1\AppData\Local\Temp\vs543E.tmp\x64\ZAL_Release\</IntermediateOutputPath>

这个filepath存在于Harry的电脑上但不在我的电脑上。有这个名字的人不知道他是如何创建的,所以我假设Visual Studio创建了它。这就是我有3个问题的原因:

1。 IntermediateOutputPathcsproj代码的目标是什么? (我已经检查过MSDN文档,但仍然不清楚)

2。 Harry如何生成代码(因为他不知道)?

3。是否可以使用通用变量来获取每个人都可以使用的文件路径,以防IntermediateOutputPath运行该程序是必需的?{/ p>

1 个答案:

答案 0 :(得分:6)

  1. 项目文件中的OutputPath

      

    指定输出目录相对于项目目录的路径,例如&#34; bin \ Debug&#34;。

    BaseOutputPath

      

    指定输出文件的基本路径。如果设置,MSBuild将使用OutputPath = $(BaseOutputPath)\ $(配置)。语法示例:c:\ xyz \ bin \

    BaseIntermediateOutputPath

      

    创建所有特定于配置的中间输出文件夹的顶级文件夹。 obj是默认值。以下代码是一个示例:c:\ xyz \ _ obj \

    IntermediateOutputPath

      

    从BaseIntermediateOutputPath派生的完整中间输出路径(如果未指定路径)。例如,\ obj \ debug。如果重写此属性,则设置BaseIntermediateOutputPath无效。

    您可以阅读here。通常,这些路径应该是相对的,绝不会导致任何主文件夹或其他特定于用户的路径。

  2. 有关如何在您的csproj文件中插入IntermediateOutputPath的说明,请参阅this question

    编辑:实际上,这是一个模糊的解释,但我找不到任何其他信息。密切关注csproj文件的变化,以确定更改的原因。

  3. 您可以将IntermediateOutputPath设置为相对路径。但是,您也可以删除整个标记并使用默认值。在我们的VisualStudio 2015项目文件中,我们只设置基础OutputPath,一切正常。我认为中间对象的默认位置是/obj