Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为所有配置设置相同输出路径的后果是什么?_C#_Asp.net_Asp.net Mvc_Visual Studio_Asp.net Web Api - Fatal编程技术网

C# 为所有配置设置相同输出路径的后果是什么?

C# 为所有配置设置相同输出路径的后果是什么?,c#,asp.net,asp.net-mvc,visual-studio,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Visual Studio,Asp.net Web Api,为了调试Visual Studio 2013中的Web API项目,我必须将调试配置的输出路径设置为bin\(这意味着文件最终位于相对于解决方案根文件夹的{ProjectName}\bin) 但现在我面临的问题是,我们在构建服务器设置的几个地方使用了路径bin\{ConfigurationName}。我非常希望统一调试设置和其他Visual Studio配置 因此,我的问题是:您是否知道将所有配置的输出文件夹统一为bin\,从而导致文件夹结构{ProjectName}\bin,会产生任何问题 如

为了调试Visual Studio 2013中的Web API项目,我必须将调试配置的输出路径设置为
bin\
(这意味着文件最终位于相对于解决方案根文件夹的
{ProjectName}\bin

但现在我面临的问题是,我们在构建服务器设置的几个地方使用了路径
bin\{ConfigurationName}
。我非常希望统一调试设置和其他Visual Studio配置

因此,我的问题是:您是否知道将所有配置的输出文件夹统一为
bin\
,从而导致文件夹结构
{ProjectName}\bin
,会产生任何问题


如果这样做,是否有任何方法可以在不更改
bin\debug\
的输出文件夹的情况下调试Web API项目?

无后果:

默认情况下,项目生成存储在项目目录中,如:

{Solution}/{Project}/obj/Debug/{Project}.dll    
{Solution}/{Project}/obj/Release/{Project}.dll
每个项目文件夹中每个生成类型的文件夹


如果您的所有二进制文件都输出到同一个目录,它们将

  • 在开发环境中的运行时以相同的方式链接
  • 以相同的方式解决依赖关系
  • 以同样的方式部署
结果将是的目录结构

{Output Directory}/Debug/{Project}.dll    
{Output Directory}/Release/{Project}.dll    
IDE是可定制的:

不需要在项目目录中保存项目生成。项目生成文件夹是默认配置。IDE的设计目的是让您能够在舒适的环境中工作。如果您希望对所有程序集进行分组,或者发现它解决了一个问题,则可以自由更改此生成配置


对Web API进行调试时遇到的问题?

您不必更改输出路径以调试Web API。将您的Web API连接到

1)在VS资源管理器中单击您的Web API项目

2)单击Visual Studio菜单中的debug

3)单击附加到进程…


4)单击/选择名为w3wp.exe的所有进程无后果

默认情况下,项目生成存储在项目目录中,如:

{Solution}/{Project}/obj/Debug/{Project}.dll    
{Solution}/{Project}/obj/Release/{Project}.dll
每个项目文件夹中每个生成类型的文件夹


如果您的所有二进制文件都输出到同一个目录,它们将

  • 在开发环境中的运行时以相同的方式链接
  • 以相同的方式解决依赖关系
  • 以同样的方式部署
结果将是的目录结构

{Output Directory}/Debug/{Project}.dll    
{Output Directory}/Release/{Project}.dll    
IDE是可定制的:

不需要在项目目录中保存项目生成。项目生成文件夹是默认配置。IDE的设计目的是让您能够在舒适的环境中工作。如果您希望对所有程序集进行分组,或者发现它解决了一个问题,则可以自由更改此生成配置


对Web API进行调试时遇到的问题?

您不必更改输出路径以调试Web API。将您的Web API连接到

1)在VS资源管理器中单击您的Web API项目

2)单击Visual Studio菜单中的debug

3)单击附加到进程…


4)单击/选择所有名为w3wp.exe的进程

,只要确保您的名称空间不冲突,我就看不到问题。例如,我过去遇到的问题是,在MVC和API项目中都有一个客户控制器。一个潜在的问题可能是VS only编译已更改的文件引起的。如果未将编译符号编译到未更改的程序集中,则可能无法进行调试。@BDH这是一个很好的观点!切换配置时要记住这一点。只要你确保你的名字空间不冲突,我就看不出有什么问题。例如,我过去遇到的问题是,在MVC和API项目中都有一个客户控制器。一个潜在的问题可能是VS only编译已更改的文件引起的。如果未将编译符号编译到未更改的程序集中,则可能无法进行调试。@BDH这是一个很好的观点!切换配置时要记住这一点。我已经澄清了这个问题,因为有一点误解。不过,我希望答案大致相同:——)@SørenBoisen,在回答之前,我想确定我是否正确理解。您想将所有配置合并到
bin`内的同一目录中,而不是为您的构建配置文件创建一个不同的
bin\Config`文件夹?是的,但仍然是每个项目,正如我在问题中试图澄清的:-)因此,每个项目的输出都会转到该项目的bin文件夹,而不管配置如何。更清晰?@SørenBoisen,对所有输出路径使用
bin/
没有问题。由于您从未对同时生成调试和发布(如果可能的话)感兴趣,活动生成将覆盖当前bin文件夹中的一些文件。但这并不是问题——就像执行清理/构建一样。我不希望调试b/c时出现任何问题。
.pdb
文件管理调试程序集跟踪。是的,调试符号位于单独的文件中,因此不会造成问题。但是,在System.Diagnostics.Debug上使用方法将无法工作,直到我认为发生更改/强制重新编译。但这只是一个混乱的问题,而不是一个真正的问题。酷,我的担心已经平息了!我已经澄清了这个问题,因为有一个轻微的错误