C# Appsettings.json获取字符串并运行两个程序
我使用的是从VS代码运行和调试,但当我同时运行项目API和MVC时,会出现错误 Microsoft.EntityFrameworkCore.SqlServer.dll中发生“System.ArgumentNullException”类型的异常,但未在用户代码中处理:“值不能为null。” 我的代码:C# Appsettings.json获取字符串并运行两个程序,c#,.net-core,asp.net-core-mvc,C#,.net Core,Asp.net Core Mvc,我使用的是从VS代码运行和调试,但当我同时运行项目API和MVC时,会出现错误 Microsoft.EntityFrameworkCore.SqlServer.dll中发生“System.ArgumentNullException”类型的异常,但未在用户代码中处理:“值不能为null。” 我的代码: options.UseSqlServer(Configuration["Data:UCASAppDatabase:ConnectionString"])); 这发生在我使用debug运行两个项目之
options.UseSqlServer(Configuration["Data:UCASAppDatabase:ConnectionString"]));
这发生在我使用debug运行两个项目之后,但如果我在API工作之外创建appsettings,但我想要的是在API内部使用appsettings
如何从appsettings.json获取字符串,而不创建新的appsettings.json
通常最好将它们分开,但如果您真的只想使用一个,您应该能够将appsettings.json文件作为链接项添加到不包含物理文件的项目中。使用add=>existingitem,从add下拉列表中选择“addaslink”,然后选择要添加的文件。确保他们的构建操作是内容+“更新时复制”,这样您就可以开始了。你可能会考虑制作一个解决方案文件夹,并把共享资源放在那里,这样你就可以更清楚地看到共享资源了。 编辑: 如果VS代码无法通过UI,您应该能够手动添加。 编辑.csproj文件并添加所需的内容文件:
<ItemGroup>
<Content Include="..\Root\appsettings.json" Link="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
保存最新
Copyappsettings.json
到项目的根目录。@TanvirArjel但是使用为每个项目定义的文件不是更好吗?不必改变位置,当我尝试将mvc中的视图放在根目录上时,我的老师谈到了这一点是的,因为我使用mvc从api中获取数据,它们是不同的projects@phuzi将MVC应用程序与Web API应用程序分离有其自身的好处——它使将来更容易过渡到SPA风格的应用程序,如果所有流量都通过API,那么它会将业务逻辑集中在API中,这意味着API中有更多功能可供其他消费者利用(如移动或桌面应用程序)。仅仅因为你不了解它的好处并不意味着这种方法是无效的。我知道你可以在Visual Studio中这样做,它在VS代码中也能工作吗?可能不行,但你应该能够手动将链接添加到你的.csproj文件中:
我将我的.csproj从api更改为`
“.\Root\appsettings.json”将是您的项目的相对位置。您需要根据您的文件相对于所需项目的位置对其进行更改。此外,我会将其保存在自己的
中,最好不要混合项目组用途。