在同一个解决方案中,在控制台应用项目中引用Web API appsettings.json文件--dotnet运行的问题
我有一个.NET 5 ASP.NET Core Web API和一个Visual Studio解决方案中的控制台应用程序.我的API主机项目中有一个appsettings.json文件,我想在控制台应用中引用哪个文件.该文件具有Copy if newer Copy to Output Directory. 解决方案结构如下(省略了非相关项目): 解决方案 apihostproject appsettings.json consoleappproject 这是我的控制台应用的Program.cs: public class Program { public static Task Main(string[] args) => CreateHostBuilder(args).Build().RunAsync(); public static IHostBuilder CreateHostBuilder(string[] a
当从另一个项目引用时,并非所有库的引用DLL都被复制到本地。
我正在尝试使用LeadTools Imaging库,它们具有大量的DLL,需要引用.我们的设计的设置方式我们拥有一个核心库,我们所有项目都基于,所有DLL都将LeadTools需求加载到我们的基础库中,并且它们在其构建路径中被当地复制,但是当我们使用时我们的子项目只有一些DLL在本地复制(leadtools.codecs.dll和lideTools.dll是具体的). 两个dll之间的设置没有差异 不是.我需要做些什么才能使这些编解码器的复制在本地复制? 参考列表的上半部分 参考列表的底部和第二个项目 Core的输出目录 第二个项目的输出目录 这是CSPROJ文件中的项目组部分.
26 2024-04-26
编程技术问答社区
如何关闭Visual Studio中可移动驱动器上的.sln文件的加密功能?
问题描述: (至少发生在VS2005和VS2008中,未在VS 2010中进行测试) 如果项目(例如.csproj)或解决方案文件(.sln)是从可移动驱动器打开的,并且发生了一些事情……似乎是否在没有安全删除的情况下断开驱动器,或者计算机崩溃或VS崩溃,则和/或解决方案文件已加密.打开时,Visual Studio似乎加密项目文件,并且仅在正确关闭Visual Studio或Project时才解密它们.如果发生意外的事情,文件仍会加密. 在这些情况下,它是东芝硬盘,但我也出现在其他可移动的硬盘驱动器或USB键上. 这不是问题,直到磁盘连接到同一台计算机(文件已加密,因此只能由对它们加密的胜利用户才能打开它们).但是,当磁盘连接到另一台计算机,甚至更糟...当Windows安装损坏时,项目文件就不再可获得. 是否有某种方法可以关闭此功能?还是一个错误,只需要通过"不使用可移动驱动器"来解决? 解决方案 我不知道解决方案或项目文件的任何内置加密,而且我经常在
8 2024-04-24
编程技术问答社区
将Visual Studio项目文件解析为XML
使用动态XML解析器,我正在尝试将VS项目文件作为XElement加载.这是项目文件的纤细版本: 该文件似乎是从某种意义上加载的,即当我ToString()时,我会得到内容.但是,当试图挑选元素时,找不到任何东西: XElement element; public DynamicXmlParser( string fileName ) { element = XElement.Load( fileName ); }
了解多项目(可互操作).NET解决方案中的配置文件
方案 考虑使用其中4个项目的解决方案: 1)ProjectsQL:这是一个项目,其编译输出设置为Library,这是访问SQLServer数据库并做某事的原因.最终库将能够提供API以管理最终应用程序的持久性. 2)ProjectWCF:这是一个项目,其编译输出设置为Library,这负责定义服务合同,数据合同和服务实施,以使我的应用程序托管服务. 3)projectMissellaneous:这是一个项目,其编译输出设置为Library,这是为其他事物提供API的责任. 4)ProjectApp:这是一个项目,其汇编输出设置为Executable (Exe),这负责创建我的应用程序的业务逻辑.假设这是一个简单的控制台应用程序.该项目提到了所有其他项目. 假设:考虑每个项目都有自己的配置文件.例如,ProjectsQL定义连接字符串以连接到数据库等等... 问题:配置 好吧,我的问题是:考虑我的应用程序Project Project App
12 2024-04-23
编程技术问答社区
用c#和vb.net编写的asp.net网络应用程序的代码。
我们目前有一个ASP.NET网站,其中一些模块在VB.NET中开发了一些模块,并且在C#中有一些模块(不仅是类,还包括单个ASPX页面和背后的代码).我们认为我们想转到Web应用程序模型,因为我们需要用TFS实现CI. 问题: 当我们创建C#Web应用程序时,从网站复制文件并说转换为Web应用程序,它给出了Could not Parse errors(可能是因为文件是vb.net文件) 当我们创建VB.NET Web应用程序时,复制文件并说转换为Web应用程序,它仅转换VB.NET页面和发布在所有C#页面上丢弃错误,说Could not load type ASP.NET网站将与多个CodeBehind语言支持正常合作. 帮助您将不胜感激! 解决方案 您可以将应用程序分解为从同一根目录运行的两个独立的Web应用程序吗?只需将符合的c#dll与编译的vb.net dll放在垃圾箱中,然后将所有ASPX页面放在您需要用于您的站点结构的位置. 我没有
6 2024-04-23
编程技术问答社区
枚举单独的类?
在业务层中对单独类别的单独类别的一般共识来存储枚举的定义?这是不好的做法吗?这符合良好的N层设计吗?目前,我的枚举定义围绕着不同的定义,我认为是相关的班级 - 但我觉得它们应该在一个地方.实际上,这是一个主观的问题,是我如何构建解决方案的方式? 解决方案 将枚​​举保持在单独的类中 在这种情况下,您将无关的定义扔到一个类中,几乎没有好处. 将枚​​举定义为类型的嵌套类型,它与 有关 当您在班级中举行枚举时,您可能会遇到命名问题: class Foo { public enum SomeType { /* ... */ } public SomeType SomeType { get; set; } } 这将出现一个错误的错误. 它可能只是个人的口味,但大多数情况下,我将枚举与它们与之相关的班级以及嵌套的班级一起放置: public enum SomeType { } public class Foo { } 我被诱惑很多
8 2024-04-22
编程技术问答社区
管理存在于多个解决方案中的C#项目的Nuget包
我现在处于一个大项目的重构疯狂的阶段,该项目具有很多旧的遗产和不稳定的模块.我决定将解决方案分开目前拥有所有项目(因此,大约有20个,因为单位测试项目肯定会在接下来的几个月中进行),以使其更加独立和颗粒状. 使用这种方法,有模块,例如需要在多个解决方案中引用或添加的API客户端. 问题在于,Nuget软件包仅在最初首次添加的解决方案上恢复.因此,最简单的示例: 解决方案A: ------- Projecta ------- apiclient 解决方案B: ------- ProjectB ------- apiclient 由于我们不包含包装夹,因此会导致Nuget软件包问题: 克隆回购. 打开解决方案B,构建并还原解决方案的nugets. 解决方案中使用客户端包的错误b. 转到解决方案构建它并恢复解决方案的nugets 返回解决方案b. nugets在解决方案B中的clientapi恢复,错误已
22 2024-04-22
编程技术问答社区
通过本地项目引用导入NuGet引用
假设我有一个"主要" C#项目,该项目使用Nuget来管理其第三方依赖关系. 现在,假设我与主要项目一起创建了一个单位测试项目,该项目包括主要项目作为参考. 不幸的是,似乎我需要重新添加通过Nuget在主项目中包含的依从性,以便使用它们在单元测试项目中为单位测试编写代码. 我的问题是:是否有一种方法可以在测试项目中自动包含"主要" Nuget参考? 解决方案 看来,我需要重新添加依从性依赖性,这些依赖性通过Nuget包含在主要项目中,以便使用它们在单位测试项目中为单元测试编写代码. 因为Visual Studio/Msbuild试图变得聪明,并且仅将参考文献带入项目单元测试中,以检测到项目" Main"所要求的.它这样做是为了避免在项目单位测试中间接参考污染.您可以参考接受的答案以获取更多细节. 我的问题是:是否有一种方法可以在测试项目中自动包含"主要" Nuget参考? 简单的答案是YES ,但不确定此方法是否对您有效.我在这里发布它,希
12 2024-04-21
编程技术问答社区
使用Roslyn查找Visual Studio解决方案中的所有引用
tldr; 如何在我的Visual Studio解决方案中找到对索引属性Microsoft.Extensions.Localization.IStringLocalizer.Item[String]的参考的所有const字符串参数?所有源代码均以C#编写.解决方案还必须支持MVC剃须刀视图. 附加信息 我相信罗斯林是问题的答案.但是,我还没有通过API找到自己的方法来实现这一目标.我也不知道要使用语法树,编译还是语义模型.以下是基于Stackoverflow上其他问答的尝试.非常感谢任何帮助使其工作的帮助:-)如果您很好奇,您可以阅读有关此需求的原因在这里. namespace AspNetCoreLocalizationKeysExtractor { using System; using System.Linq; using Microsoft.CodeAnalysis.FindSymbols; using Microsoft.
10 2024-04-21
编程技术问答社区
组织依赖性项目的最佳方式?
我有一组依赖其他项目的项目(您可以说实用程序),问题是每次我更改这些公用事业的代码时,我的同事需要采用最新代码并在其机器上构建其机器使用最新的组件. 有一个很好的标准解决方案吗?或简单地将DLL集中在共享文件夹上? P.S: 我们正在使用MS Source Safe 2005,我不希望我的同事每次使用源代码并在其机器上构建,因为他们只需要二进制文件而不是代码. 解决方案 如果将subvernion用作源控制系统,则可以使用 SVN外部这样做. 这样,当他们进行文件夹的根更新时,他们将自动拉出您的实用程序的新版本.您还可以以读取方式为他们提供源控件,以便他们可以查看实用程序代码,但他们无权提交更改. 我们在工作中使用它,并且可以很好地工作.但是请注意,有时您不想每次进行更新时都更新公用事业,因为您可能会使用新版本破坏某些内容.这是贵公司必须有一种处理方法.我们有针对公用事业的市长版本的SVN分支(或标签),因此,如果我们更改了一些市长,我们会制作新版本,然后人们将
18 2024-04-20
编程技术问答社区
什么是解析字符串的最佳方法?
我们有一个方案,需要我们解析大量电子邮件(纯文本),每个电子邮件'type'都是脚本在各种平台上运行的结果.有些是划界的标签,有些是划界空间的,有些我们根本不知道. 将来我们也需要支持更多的"格式". 我们使用: 寻求解决方案 正则 简单的字符串搜索(使用String.Indexof等) lex/yacc 其他 总体解决方案将在C#2.0(希望3.5) 中开发 解决方案 您说明每个封面的三种解决方案都非常不同. 手动解析(简单的文本搜索)是最灵活和最适应性的,但是,由于所需的解析更为复杂,因此很快就会成为屁股的真正痛苦. Regex 是中间立场,在这里可能是最好的选择.它们功能强大,但灵活,因为您自己可以从调用不同的正则反正的代码中添加更多逻辑.主要缺点将是速度. lex/yacc 实际上仅适用于非常复杂的,可预测的语法,并且缺乏大量的邮政编码灵活性.您无法轻易在中间解析中更改解析器,实际上您可以,但是它太重了,最好使用Regex.
12 2024-04-20
编程技术问答社区
将我的项目中的一个表格添加到另一个项目中
我有一个项目,其中有一个形式本身具有多个对象(控件).我想将此表格添加到另一个解决方案中的另一个项目中. 我如何做到这一点. 谢谢. 解决方案 您的意思是您在项目中有一个表格,并且想在其他解决方案中将其添加到另一个项目中.如果就是这种情况,则. 按照步骤: 右键单击解决方案Explorer中的项目 选择添加 - >现有项目, 在"添加现有项目对话框"中,您要添加的" form.cs". 它将使用其中的所有内容(包括Designer.cs和Resource Files)复制到您的本地解决方案项目文件夹中. 注意: 在添加表单的" .cs"文件后,您可能只会看到form.cs而不是设计视图.只需在代码编辑器中打开文件,Visual Studio将自动绘制设计器中的表单以进行设计支持. 此操作将将文件添加为复制.它们将独立于原始形式的更改.如果要进行更改,请将其添加为链接. (在"添加现有项目"对话框中选择添加链接)
26 2024-04-19
编程技术问答社区
如何在独立客户项目的输出中包括必要的文件?
我的解决方案包括: Client - 启动项目,UI层.取决于:App App - 库,应用程序层,汇编程序.取决于:Lib1,... Lib1 - 库,业务逻辑层.需要一个特定的文件才能正常工作:ThirdParty.dll 我已经在Lib1项目(Add>>>>>>> Add)中添加了ThirdParty.dll),并设置了dll文件的属性Copy to Output Directory属性.现在,将dll文件复制到Lib1输出和App输出,但在我需要它的位置Client输出. 在每个解决方案构建上将ThirdParty.dll复制到Client的输出的正确(简单?显而易见?)是什么? upd ThirdParty.dll不是参考.实际上,这是另一个参考依赖性.我的问题应用于需要在运行应用程序文件夹中的任何文件. 录制的视频确保我做对了: http://youtu.be/qws2toic5yq /p> 解决方案 将现有项目添加为链接:
10 2024-04-19
编程技术问答社区
在同一个解决方案中引用另一个项目的Web.Config文件 C#
我有一个VC2010 C#解决方案,其中有许多项目. 所以,例如,我有一个网络项目,我有一个类库. 在web.config文件中,我在部分中有一个键,例如. 我还在web.production.config文件中添加了一个密钥,以反映服务器上的文件目录. 所以当我在我的Web项目(是MVC)中引用它时 - 我这样做了: var FTPPath = ConfigurationManager.AppSettings["FileDirectory"]; 这在我的Web项目中正常工作.但是,我还需要在类库中引用此问题,该库可以解决我的问题 - 是否有一种方法可以从另一个项目中引用Web.config文件中的键.同一解决方案中的类库? 所有帮助都得到赞赏. 谢谢 解决方案 是的,您可以使用完全相同的代码. .NET将
4 2024-04-18
编程技术问答社区
如何使用dotnet sln将所有项目添加到一个解决方案中?
以下示例来自在这里我正在尝试执行 dotnet sln AllProjects.sln add **/*.csproj 但是我得到了这个错误: 找不到项目或目录**/*.csproj. 看起来通配符不起作用.我在做什么错? 解决方案 我错过了此语句: 基于UNIX/Linux的终端支持球形模式 我的Windows PowerShell解决方案看起来像这样: $projects = Get-ChildItem -Recurse | Where-Object { $_.Name -match '^.+\.(csproj|vbproj)$' } $uniqueProjects = $projects | Group-Object -Property Name | Where Count -EQ 1 | select -ExpandProperty Group | % { $_.FullName } Invoke-Expression -Com
22 2024-04-18
编程技术问答社区
如何将.xproj引用到.csproj中?
我有.csproj项目,我想引用其他项目.xproj,一切看起来都不错,但是当我尝试构建解决方案时,我不能因为丢失了.dll.当我从\bin\release\net452\...本身引用.dll时,一切都可以.如何解决? 编辑:我不是在寻找解决方法 - 现在我将Gulp与Gulp.Move()一起使用.它可以正常工作,但感觉很脏... 解决方案 不可能直接从CSPROJ引用XPROJ. 您有2个可能的解决方案. a)将XPROJ部署为nuget软件包,并在您的csproj中使用nuget软件包. b)将您的CSPROJ转换为Xproj. 注意:XPROJ必须支持您使用的.NET CSPROJ. net451等 这是CSPROJ引用Xproj nuget软件包的示例 一个> 其他解决方案 Xproj死了.使用便携式类库(CSPROJ),然后将其设置为.NET标准以及您要使用的级别以兼容.然后将创建project.json(可能以后将
4 2024-04-18
编程技术问答社区
确定对不正确的.NET框架版本的间接依赖的来源
我想知道如何确定此构建错误的来源; Warning 4 The primary reference "MyNamespace.MyProject" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework. MyNamespace.MyOtherProject 我理解了此错误的含义(对于同一项目而言,其他5个喜欢它的含义),但是我无法理解如何在我的情况下解决它.在这种情况下,"主要参
2 2024-04-18
编程技术问答社区
在Visual Studio中运行多个NUnit项目
我有一个解决方案,该解决方案具有多个项目,包括Nunit测试项目.因此,解决方案看起来像这样(使用通用名称,这些不是实际名称): + Solution + Project1 + Project1.Test + Project2 + Project2.Test + Project3 + Project3.Test ... 我想从Visual Studio中单击"开始调试"时通过Nunit GUI或控制台应用程序运行所有Nunit测试. 现在,添加了我所做的工作,一个名为testrunner的新类库,并将其设置为启动项目(我读过我真的不需要这样做,我可以右键单击该项目和单击"调试>启动新实例").然后在调试页面上的项目属性内,我将"启动操作"设置为"启动外部程序",然后选择Nunit-console.exe(看起来像Nunit.exe GUI不支持多个组件作为输入参数).然后在"命令行参数"中,我输入到每个项目的路径.这样: 这似乎可以正常工
2 2024-04-17
编程技术问答社区
Visual Studio中的 "添加现有项目":是否有可能使 "添加为链接 "成为默认值?
如 this ,请回答, add>现有项目对话框默认情况下,Studio显示 add 按钮(这意味着所选项目将被物理复制到新位置),而所需的操作通常是(总是? >. 是否可以配置Visual Studio,以便在打开 add>现有项目对话框时默认选择添加为链接? 我已经在Visual Studio中彻底搜索了选项对话框,并检查了 msdn文档以解决此问题,但到目前为止无济于事. 解决方案 不幸的是,没有任何选择.但是有一线希望.您可以将文件拖动到项目中,然后将其放到所需的文件夹中.文件已复制到您的项目中.如果按 alt 键执行拖放操作,则不复制文件而是链接. 其他解决方案 您还可以使用 其他解决方案 看来,当您将"现有""添加"到解决方案文件夹(而不是实际文件夹)时,您始终将这些项目添加为链接. 如果将现有项目添加到实际文件夹中,则获取为"添加为链接"选项的按钮.
12 2024-04-14
编程技术问答社区