gpt4 book ai didi

C#/.NET 项目 - 我的设置是否正确?

转载 作者:行者123 更新时间:2023-11-30 18:09:06 25 4
gpt4 key购买 nike

第一个解决方案位于:\Common\Controls\Controls.sln
及其项目:\Common\Controls\Common.Controls\Common.Controls.csproj
描述:这是一个包含此类的库:

public abstract class OurUserControl : UserControl
{
// Variables and other getters/setters common to our UserControls
}

第二个解决方案位于:\AControl\AControl.sln
及其项目:\AControl\AControl\AControl.csproj
描述:在众多的表单/类中,它将包含这个类:

using Common.Controls;

namespace AControl
{
public partial class AControl : OurUserControl
{
// The implementation
}
}

关于添加引用的注释(不确定这是否相关):

当我添加引用(对于我创建的项目)时,使用上面的名称:
1. 我将 Common.Controls.csproj 添加到 AControl.sln
2. 在 AControl.sln 中,我关闭了 Common.Controls.csproj
的构建 3. 我将对 Common.Controls 的引用(按项目)添加到 AControl.csproj

这是我所知道的(最简单的)方法,如何让调试版本与调试引用相匹配,以及发布版本与发布引用相匹配。

现在,这就是问题所在(实际使用 UserControl 的第三个解决方案/项目):

第三个解决方案位于:\MainProj\MainProj.sln
及其项目:\MainProj\MainProj\MainProj.csproj
描述:这是其中一个类中的示例函数:

private void TestMethod<T>()
where T : Common.Controls.OurUserControl, new()
{
T TheObject = new T();
TheObject.OneOfTheSetters = something;
TheObject.AnotherOfTheSetters = something_else;

// Do stuff with the object
}

我们可以这样调用这个函数:

private void AnotherMethod()
{
TestMethod<AControl.AControl>();
}

此构建、运行和工作。没问题。奇怪的是,在我关闭项目/解决方案并重新打开它之后,到处都是红色的波浪线。我调出我的错误列表,我看到了很多错误(任何涉及 AControl 的内容都会被标记为错误)。

我会看到如下错误:

  • 类型“AControl.AControl”不能用作泛型类型或方法“MainProj.MainClass.TestMethod()”中的类型参数“T”。没有从“AControl.AControl”到“Common.Controls.OurUserControl”的隐式引用转换。

或在实际方法内部(位于抽象类中的属性):

  • “AControl.AControl”不包含“OneOfTheSetters”的定义,并且找不到接受“AControl.AControl”类型的第一个参数的扩展方法“OneOfTheSetters”(是否缺少 using 指令或程序集引用? )

与此同时,我仍然可以构建和运行项目(然后红色波浪线消失,直到我重新打开项目,或关闭/重新打开文件)。在我看来,我可能没有正确设置项目。想法?

最佳答案

您不应该为您拥有的每个项目制定一个解决方案,而应该有一个解决方案包含多个项目(在您的情况下可能是所有项目)。

您还可以使用重叠的包含项目制作多个解决方案。例如。如果您经常只编辑核心库,请创建一个仅包含您的\Common\Controls\Common.Controls\Common.Controls.csproj 项目的解决方案,并创建另一个包含所有三个项目的解决方案以编辑其他两个项目。

这将为您提供迄今为止最好的 Visual Studio 体验(并且您不再需要关心匹配调试/发布等问题)。

关于C#/.NET 项目 - 我的设置是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686811/

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