【问题标题】:Completely change obj folder location in c# project完全更改 c# 项目中的 obj 文件夹位置
【发布时间】:2020-12-11 16:00:30
【问题描述】:

MSBuild 很奇怪

我已经尝试过this 和另一个答案,我也尝试过this one

在那之后,我在.csproj 文件中更改了<IntermediateOutputPath><BaseIntermediateOutputPath><OutputPath> 但是...

它一直在旧的obj 文件夹中创建这个奇怪的东西(我不使用 nuget)

project.assets.json
project.nuget.cache
project.packagespec.json
...

我已经阅读了有关 Visual Studio 旧工作流导致此行为的信息,但是否存在任何解决方法?

我当前的.csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <StartupObject>Program</StartupObject>
    <IntermediateOutputPath>..\..\obj\</IntermediateOutputPath>
    <BaseIntermediateOutputPath>..\..\obj\</BaseIntermediateOutputPath>
    <OutputPath>..\..\bin\Build\</OutputPath>
  </PropertyGroup>
  
  <ItemGroup>
    <ProjectReference Include="foo\dependency.csproj" />
  </ItemGroup>

</Project>

【问题讨论】:

    标签: c# windows visual-studio msbuild csproj


    【解决方案1】:

    通过在项目的根目录中创建 Directory.Build.props 文件解决:

    <Project>
        <PropertyGroup>
            <MSBUildProjectExtensionsPath>..\..\obj\</MSBUildProjectExtensionsPath>
        </PropertyGroup>
    </Project>
    

    非常肮脏和不明显的微软风格的黑客攻击

    找到here

    有没有什么好的windows .NET 编译器不用自己穿透?

    【讨论】:

    • 仅供参考。修改 .csproj 并添加 &lt;BaseIntermediateOutputPath&gt;..\..\obj\&lt;/BaseIntermediateOutputPath&gt; 在我的情况下有效。但是,Directory.Build.props 不起作用。感谢信息here
    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 2010-11-28
    • 1970-01-01
    • 2011-04-14
    • 2015-09-13
    • 2022-01-02
    • 2014-10-03
    • 2016-01-25
    相关资源
    最近更新 更多