没有为项目设置OutputPath属性... / VS任意更改解决方案中的项目配置从Debug到Release
Posted
技术标签:
【中文标题】没有为项目设置OutputPath属性... / VS任意更改解决方案中的项目配置从Debug到Release【英文标题】:The OutputPath property is not set for project ... / VS arbirtrarily changing configuration of projects in solution from Debug to Release 【发布时间】:2021-06-06 18:16:03 【问题描述】:上周,我尝试使用 Visual Studio 构建的每个解决方案都开始出现问题。我使用的是 VS 2019,我们的组织刚刚推送了一些 Windows 更新(不确定这是否相关),但更新后我使用的是 VS 2019 版本 16.8.4、.Net 版本 4.8.03752。
每当我尝试构建我们的一个解决方案时(在从我们的 repo 的主分支进行免费拉取后,我尝试了 3 种不同的解决方案)我得到超过 1000 个错误,这些错误似乎是未设置的 OutputPath 属性的级联错误似乎与将解决方案设置为 Debug | 任意从 Debug 更改为 Release 的几个项目有关。任何 CPU。
此外,如果我检查项目属性上的构建选项卡(或在配置管理器中检查它们),则不会显示任何调试配置。如果我关闭 Visual Studio,它会提示我保存更改,如果我进行比较表明它确实将多个项目的配置从 Debug 更改为 Release。
我已经在 2 台不同的机器上复制了这个,全新安装了 Visual Studio 2019(和 2017),并从存储库中提取了新代码。我组织中的其他开发人员构建的解决方案很好,他们的配置显示调试 |任何 CPU(即我似乎是世界上唯一遇到此问题的人,而且我在我尝试过的每台机器上都遇到过这个问题,并且有多个版本的 Visual Studio)。
我还看到错误说项目包含“丢失”的 nuget 引用,但是如果我恢复 nuget pacakges,我会收到一条消息,说它们都已安装并且没有什么可恢复的。我还在包文件夹中看到了“丢失”的包。
我们对包使用相对路径,因此它不会是某些人遇到的典型文字路径问题。除此之外,我的文件夹结构没有改变,我们都使用相同的文件夹结构。
我完全不知道下一步该尝试什么。在这方面,我的 googlefoo 完全让我失望了。
我非常希望 Stack Exchange 世界中的某个人能够提供解决方案。
谢谢,
格雷格。
【问题讨论】:
嗨,格雷格,如果您有解决方法,您可以添加有关它的答案以与我们分享。它可以帮助其他社区成员搜索和处理类似的问题。你这样做真是太好了:) 【参考方案1】:请检查您项目的csproj
文件是否遗漏了这些内容:
您可以直接将这些添加到csproj
文件的底部:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
之后,删除bin
和obj
文件夹。
然后,在Tools-->Options-->Nuget Package Manager下运行update-package -reinstall
- -> Package Manager Console 重新安装所有 nuget 包。
【讨论】:
感谢您的回复。我检查了这些部分已经存在于 .csproj 文件中。但是当我打开配置管理器时,它会显示 Release |任何 CPU 和下拉列表仅显示 Release、以上是关于没有为项目设置OutputPath属性... / VS任意更改解决方案中的项目配置从Debug到Release的主要内容,如果未能解决你的问题,请参考以下文章
未为项目设置OutputPath属性(C ++,空白新解决方案,VS2017)
只有在 CCNET 中调用 MSBuild 时才会出现“OutputPath 属性未设置”错误
Azure Functions C# 预编译的本地发布错误 OutputPath 未设置