我认为仅使用项目参考就可以很容易地做到这一点,但我相信我错过了一个步骤。我非常不熟悉使用多项目解决方案,感谢任何帮助!
我正在将一个巨大的解决方案文件从 .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 找到正确的方法?
要添加对当前项目中另一个项目的引用,您需要在解决方案资源管理器中右键单击您的项目并选择“添加引用”,然后选择要在解决方案中引用的项目。
如果答案不起作用,您可以尝试分享有关您的项目的更多详细信息。
我如何在我自己的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
该项目包括来自其他几个项目的资源。