在csproj中自动生成IntermediateOutputPath

Han*_*ans 4 c# git csproj visual-studio

更新代码后,csproj我有一个错误,file因为filepath路径不存在.以下是启动错误的代码:

<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>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

IntermediateOutputPath存在于哈利的计算机上但不在我的计算机上.有这个名字的人不知道他是如何创建的,所以我假设Visual Studio创建了它.这就是我有3个问题的原因:

1.csproj标签的目标是什么IntermediateOutputPath?(我已经检查过MSDN文档,但仍然不清楚)

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

3.是否可以使用通用变量来获取每个人都可以使用的文件路径,这csproj是程序运行所必需的?

kow*_*sky 6

  1. 一个OutputPath项目中的文件

    指定输出目录相对于项目目录的路径,例如"bin\Debug".

    BaseOutputPath

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

    BaseIntermediateOutputPath

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

    IntermediateOutputPath

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

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

  2. 有关如何在csproj文件中插入可能的说明,请参阅此问题IntermediateOutputPath.

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

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

  • 好的,我删除了IntermediateOutputPath行,它工作正常.大家都很开心.谢谢@kowsky (4认同)