尝试在多项目 Visual Studio 解决方案中导入和使用不同项目的方法

问题描述 投票:0回答:2

我认为仅使用项目参考就可以很容易地做到这一点,但我相信我错过了一个步骤。我非常不熟悉使用多项目解决方案,感谢任何帮助!

我正在将一个巨大的解决方案文件从 .net Framework 4.8 升级到 .net 8,并且我正在尝试修复此方法以在整个解决方案的多个位置使用它:

using System;
using System.Collections.Specialized;
using System.Configuration;
using System.Linq;
using Microsoft.Extensions.Configuration;
using NLog.LayoutRenderers;
using P1S.Common.Extensions;
using P1S.Common.Interfaces;
using ConfigurationManager = System.Configuration.ConfigurationManager;
using IConfigurationProvider = P1S.Common.Interfaces.IConfigurationProvider;

namespace SepsisServer.Infrastructure.Configuration
{
    public class ConfigurationProvider : IConfigurationProvider, ICustomNameConfigurationProvider
    {
        public string Get(string settingKey)
        {
            var builder = new ConfigurationBuilder();
            builder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json", optional: false, reloadOnChange: true);
            IConfiguration config = builder.Build();


            return config[settingKey];
            //return ConfigurationManager.AppSettings[key];
        }

我尝试使用它的一个地方是这里: 因此,我使用 using 语句导入命名空间,该语句保持灰色,而 Get 被高亮显示为红色,表明 Get 在当前上下文中不存在

using SepsisServer.Infrastructure.Configuration;
...
public TestEnvironment()
{
   //irrelevant code removed for simplicity
           IdentifiConnectionString = Get(Constants.Environment.IdentifiConnectionString);

}

我已经添加了对正确项目的引用,但这似乎没有改变任何东西。我如何帮助 Visual Studio 找到正确的方法?

visual-studio assembly reference
2个回答
1
投票

要添加对当前项目中另一个项目的引用,您需要在解决方案资源管理器中右键单击您的项目并选择“添加引用”,然后选择要在解决方案中引用的项目。

如果答案不起作用,您可以尝试分享有关您的项目的更多详细信息。


0
投票

我如何在我自己的orojrcts之间共享源代码(无需复制和粘贴)以制作独立的可执行文件(并且没有.dll)。

我编辑 .csproj 文件,添加按文件夹的源链接。

    <ItemGroup>
        <Compile Include="..\1. Token Scanner\Token Scanner Library\**\*.cs">
            <Link>Token Scanner Library-Linked\%(RecursiveDir)%(FileName).cs</Link>
        </Compile>
        <Compile Include="..\3. Expression Parser\Expression Parser Library\**\*.cs">
            <Link>Expression Parser Library-Linked\%(RecursiveDir)%(FileName).cs</Link>
        </Compile>
        <Compile Include="..\4. Statement Parser\Statement Parser Library\**\*.cs">
            <Link>Statement Parser Library-Linked\%(RecursiveDir)%(FileName).cs</Link>
        </Compile>
    </ItemGroup>

除此之外,我还有 1 个解决方案和 5 个项目。每个项目都位于解决方案文件夹下的各自单独的文件夹中,以便链接可以是相对的(通过 ..)。

例如,请参阅此处的上下文:https://github.com/erikeidt/Draconum/blob/master/src/6.%20Code%20Generator/6.%20Code%20Generator.csproj

该项目包括来自其他几个项目的资源。

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