gpt4 book ai didi

c# - 如何指定通用源文件和属性并让它们出现在 Visual Studio 中

转载 作者:行者123 更新时间:2023-11-30 22:02:33 26 4
gpt4 key购买 nike

我有一个解决方案适用于许多想要共享源文件和属性的项目。例如,如果我将源文件放入一个常见的 .props 文件中,源文件会影响构建但不会显示在 Visual Studio 中。一个简短的例子是:

Scratch.csproj:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<ItemGroup>
<Compile Include="Program.cs"/>
</ItemGroup>

<Import Project="a.props" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

A. Prop :

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Compile Include="a.cs"/>
</ItemGroup>
</Project>

a.cs, Program.cs:

namespace Scratch
{
public class A {}
}

此代码无法编译,因为类 A 已声明两次。但是,文件 a.cs 没有出现在 visual studio 解决方案中。是否有一个很好的解决方案,以便我们可以拥有也出现在解决方案中的共享属性和源文件?我看到一种可能性是使用 a.csproj 代替 a.props 并将其添加到解决方案中。然而,这也存在问题。如果您只是使用该项目的某些属性(取决于设置的条件),则不清楚哪个源文件或属性转到哪个项目。

最佳答案

Visual Studio 不处理 MSBuild 文件的全部灵 active 。构建之所以有效,是因为 Visual Studio 调用 MSBuild 库,但项目设计者、解决方案资源管理器等不能代表它们不是为之设计的东西。

包含共享源的常用方法(也就是说,如果您不为它创建一个单独的项目),是将文件作为链接添加到项目中:添加现有项目...,选择文件,而不是单击按钮后,单击按钮右侧的箭头并添加链接。解决方案资源管理器旨在识别链接文件。

属性在共享导入文件中应该没问题,但请注意 Visual Studio 无法识别对导入的更改;您必须手动重新加载项目。

关于c# - 如何指定通用源文件和属性并让它们出现在 Visual Studio 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26807290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com