csproj 相关问题

带有'csproj'文件扩展名的文件是Visual Studio .NET C#Project文件。

csproj 可以检测是否使用 `dotnet` 或 `msbuild`/`devenv` 作为条件吗?

我们有一个包含一些 WiX 3 项目的解决方案,当旧式 csproj 尝试导入 Wix.CA.targets 时,这些项目会破坏 dotnet Restore 和 dotnet test 等命令(https://github.com/wixtoolset/...

回答 1 投票 0

如何使 Sonarqube 从覆盖率测量中排除 .NET (C#) 项目

Sonarqube 允许通过在 sonar.coverage.exclusions 键中添加模式来将单个文件从代码覆盖率中排除。这可以在项目级别上通过将它们添加到 UI 中来完成,然后...

回答 6 投票 0

如何在 .csproj 中定义引用 IntermediateOutputPath 的属性

我在.csproj中有这样的部分: 我在 .csproj 中有这样的部分: <Target Name="Date" BeforeTargets="BeforeBuild"> <WriteLinesToFile File="$(IntermediateOutputPath)BuildInfo.gen.cs" Lines="...."/> </Target> <ItemGroup> <Compile Include="$(IntermediateOutputPath)BuildInfo.gen.cs" Condition="Exists('$(IntermediateOutputPath)BuildInfo.gen.cs')"/> </ItemGroup> IntermediateOutputPath如期解决,一切都很好。但由于整个路径在我的 .csproj 中重复了 3 次,我想清理它并提出自定义变量: <PropertyGroup> <BuildInfoPath>$(IntermediateOutputPath)BuildInfo.gen.cs</BuildInfoPath> </PropertyGroup> <Target Name="Date" BeforeTargets="BeforeBuild"> <WriteLinesToFile File="$(BuildInfoPath)" Lines="...."/> </Target> <ItemGroup> <Compile Include="$(BuildInfoPath)" Condition="Exists('$(BuildInfoPath)')"/> </ItemGroup> 我的变量已解析,但其内容不完全正确 - 我的效果就像 IntermediateOutputPath 是一个空字符串。 那么我如何定义自己的变量引用IntermediateOutputPath? 我已经发现,如果我将变量定义包装在 Target 中,它将部分起作用 - 即上面所示的 Target 部分将获得正确的变量,但反过来对于 ItemGroup 我的变量会是空的。 MSBuild 有两个阶段:评估和执行。请参阅“MSBuild 如何构建项目”。 “顶层”的 ItemGroup 和 PropertyGroup 元素(即 Project 文档根元素的直接子元素)在评估阶段进行评估。 ItemGroup 中的 PropertyGroup 和 Target 元素在执行阶段进行评估。 我假设这是一个 SDK 风格的项目。在后台,根据 SDK 类型导入一组文件。有些文件是在 .csproj 项目文件内容之前导入的,有些文件是在 .csproj 项目文件内容之后导入的。 IntermediateOutputPath 属性是在评估阶段定义的,但在 .csproj 内容之后导入的文件中定义。 在评估阶段的项目文件内容中,该属性尚未定义,并且在定义之前使用该属性会产生一个空字符串 - 正如您所观察到的。 在 SDK 样式项目中,仅在目标中使用 IntermediateOutputPath 属性。 您仍然可以定义自己的属性和依赖于IntermediateOutputPath的项目,但您需要将定义包装在目标中,并确保在使用值之前执行定义,例如: <Target Name="DefineBuildInfoPath"> <PropertyGroup> <BuildInfoPath>$(IntermediateOutputPath)BuildInfo.gen.cs</BuildInfoPath> </PropertyGroup> </Target> <Target Name="Date" BeforeTargets="BeforeBuild" DependsOnTargets="DefineBuildInfoPath"> <WriteLinesToFile File="$(BuildInfoPath)" Lines="...."/> </Target> <Target Name="AddBuildInfoToCompile" BeforeTargets="BeforeCompile" DependsOnTargets="Date;DefineBuildInfoPath"> <ItemGroup> <Compile Include="$(BuildInfoPath)" Condition="Exists('$(BuildInfoPath)')"/> </ItemGroup> </Target>

回答 1 投票 0

.NET 6 中的自定义 ProductVersion 字符串

我正在开发一个 .NET 6 Web 应用程序,我需要将程序集的 ProductVersion(或者,如果不可能,至少是 FileVersion)设置为自定义字符串,如下所示: 哈...

回答 1 投票 0

为什么我找不到我的 .csproj 文件

VS 2013。继我之前无法在不导致崩溃的情况下编辑文件的问题之后,编辑 cs 文件并且项目无法构建似乎是 csproj 问题。 我已按照指示进行...

回答 2 投票 0

在目标xml对象(csproj文件)上同时运行进程

我在想如何在 dotnet 自定义命令中运行多个进程(设置依赖项以实现最终结果)。 我很快找到了可以设置的目标 xml 对象...

回答 1 投票 0

使用 .NET 8 无法识别 RuntimeIdentifier

我想使用 .NET 8 创建一个新的 WinUI 3 桌面应用程序。在 Visual Studio 中初始化项目后,该项目位于 .NET 6 上。我从网络更改 .csproj 文件的 TargetFramework...

回答 2 投票 0

PackageReference 条件被忽略

在我的 VS 2017 项目中,我引用了 docfx.console 包,我希望仅在满足特定条件时使用它。但该包可用于所有构建。 这是我的项目的一部分。我想要...

回答 4 投票 0

如何获取 C# 项目之间的依赖关系图

我有一个相当复杂的应用程序,它已分解为多个组件。每个组件都有一个解决方案文件,其中包含一堆项目。所以我喜欢将其视为一个组件...

回答 8 投票 0

.net Framework csproj 文件删除后重新生成

我正在尝试更改我的.net框架项目以包含具有以下规则的所有文件: 我正在尝试更改我的 .net 框架项目以包含具有以下规则的所有文件: <ItemGroup> <Compile Include="**\*.cs"/> <Compile Remove="bin\**\*;obj\**\*"/> </ItemGroup> 每次我向项目添加文件时,它都会正确构建(并且不会修改 csproj),同时包含构建中的所有文件,但是当我从项目中删除文件时,它会重新生成 csproj 文件以分别包含每个文件并删除这一行: <Compile Include="**\*.cs"/> 即使从项目中删除文件,如何确保我的 csproj 保持不变? 我希望 csproj 文件保持不变,以防止合并并行开发的分支时发生 git 冲突。 您可能不需要第二行,因为 bin 和 obj 文件夹都不包含 .cs 文件。我假设复杂的术语在某种程度上使 Visual Studio 感到困惑。 然后(至少如果您使用 SDK 样式项目文件)您可以删除整个块,因为默认情况下递归包含所有 .cs 文件,除非在 <PropertyGroup> 部分中明确禁用默认包含。

回答 1 投票 0

如何在.NET 7中设置特定于环境的“npm start”命令?

我使用的是.NET Core 7.0,并且我使用 Angular 模板创建了一个基于 ASP.NET Core 的项目,该模板是 Visual Studio 2022 中的标准模板(也许在早期版本中也是如此)。 下面...

回答 1 投票 0

如何在 .net 6 中轻松地在 iOS 和 Mac Catalyst 之间共享代码?

我正在升级 Xamarin Native 解决方案,以便使用 SDK 风格的多目标项目在 .net 6 上运行。 据我了解,编写平台相关代码有两种方法: a) 代码

回答 3 投票 0

如何在 .NET Core 1.1 中的程序集上使用自定义属性

虽然我发现这篇关于检索程序集上的自定义属性的文章,但我不确定如何向 .NET Core 1.1 中的程序集添加自定义属性。在 .NET Framework 中,我会这样做

回答 4 投票 0

Visual Studio 在控制台应用程序而不是 Web 项目中打开 Web 浏览器 + 调试器

我最近使用自定义 Web 服务器将一些项目从 IIS ASP NET 项目更改为控制台应用程序。在这两种项目中,我们都将项目作为控制台应用程序运行(所以我们没有

回答 1 投票 0

如何将现有文件添加到项目而不复制文件? VS2022 CSPROJ

我想要这个文件结构: /项目/file1.cs /项目/file2.cs /otherpath/commonstuff/fileA.cs /otherpath/commonstuff/fileB.cs 我希望将这四个文件编译为项目的一部分......

回答 1 投票 0

尝试使用 c# csproj 在 Windows 10 x86 上的 Visual Studio 中使用运行和调试功能时出现意外的运行时 ID 错误

在此输入图像描述 win10 x86 出现意外runtimeid的解决方案是什么 图片已附在上面 使用运行和调试结果意外的runtimeid win10 x86,这是

回答 1 投票 0

.NET MAUI 项目未编译目标 android MSB4057:项目中不存在目标“UpdateGenerateFiles”

我正在构建一个 .NET MAUI 应用程序,在尝试构建和运行该应用程序时发现了此错误,但当我运行它附带的模板时它运行正常,但现在它给出了此错误:MSB...

回答 1 投票 0

如何在VS中创建SDK风格的.NET Framework项目?

是否可以在Visual Studio中创建SDK风格的.NET Framework项目(更具体地说,我使用最新的VS2019)?还是仍然需要手动操作? 是否可以在 Visual Studio 中创建 SDK-style .NET Framework 项目(更具体地说,我使用最新的 VS2019)?还是还需要手动操作? <Project Sdk="Microsoft.NET.Sdk"> 我对创建一个新项目感兴趣,而不是将现有项目从旧的 .csproj 文件样式迁移到新的 .csproj SDK-style。 我已经手动编辑过.csproj文件很多次了,但是超级不方便。 我们必须手动创建一个sdk风格的.net框架项目。通过将 TargetFramework 设置为 (例如) net472。 您可以参考以下步骤来制作。 首先,我们需要创建一个类库(.NET Standard)项目。 其次,我们需要修改csproj文件。 初始文件: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> </Project> 您可以将其编辑为: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net472</TargetFramework> </PropertyGroup> </Project> 终于可以得到一个sdk风格的.net框架项目了。 感谢对之前答案的评论,指出了upgrade-assistant。以下是我使用的命令: 安装工具: $ dotnet tool install -g upgrade-assistant 然后交互式运行并选择“升级项目功能>将项目转换为SDK样式(feature.sdkstyle)”: upgrade-assistant upgrade 或者在 cli 上一次性执行此操作,如下所示: upgrade-assistant upgrade MyProj/MyProj.csproj -o feature.sdkstyle

回答 2 投票 0

如何确保OpenXml程序集不会与SpreadsheetLight发生冲突?

我 Nugot SpreadsheetLight。为了随后使用它,我需要添加以下用法: 使用 DocumentFormat.OpenXml; 使用 DocumentFormat.OpenXml.Spreadsheet; 使用 SpreadsheetLight; 对于第一次...

回答 4 投票 0

SDK 样式项目是新 .Net Framework 项目的推荐方法吗?

我正在开发一个 .Net Framework 4.8 解决方案,其中包含 20 个左右的项目(其中包括 WPF)。 我们正在讨论现在是否应该将我们的项目转换为 SDK 风格以获得新的和改进的项目形式...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.