Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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# VS2010 DLL未更新_C#_Asp.net_.net_Visual Studio 2010_Compiler Errors - Fatal编程技术网

C# VS2010 DLL未更新

C# VS2010 DLL未更新,c#,asp.net,.net,visual-studio-2010,compiler-errors,C#,Asp.net,.net,Visual Studio 2010,Compiler Errors,我有一个解决方案(ASP.NET、.NET4.0),它似乎没有正确地更新DLL。我注意到,当我修改后编译它时,它看不到我添加的内容 我最近将解决方案上的目标平台切换到x86,因为我们现在将其部署到x64服务器上,并且我现在将其维护在x64 Win7机器上。(我不知道这是否与此有关,请参见下文。)在我隔离问题后,当我进行测试时,我发现如果我在一个aspx文件上选择“在浏览器中查看”,它会突然看到我之前所做的更改。我仔细浏览了主项目的bin文件夹中的目录,发现DLL被保存到两个不同的位置:bin文件

我有一个解决方案(ASP.NET、.NET4.0),它似乎没有正确地更新DLL。我注意到,当我修改后编译它时,它看不到我添加的内容

我最近将解决方案上的目标平台切换到x86,因为我们现在将其部署到x64服务器上,并且我现在将其维护在x64 Win7机器上。(我不知道这是否与此有关,请参见下文。)在我隔离问题后,当我进行测试时,我发现如果我在一个aspx文件上选择“在浏览器中查看”,它会突然看到我之前所做的更改。我仔细浏览了主项目的bin文件夹中的目录,发现DLL被保存到两个不同的位置:bin文件夹的根目录和bin/x86/debug/。第一个位置在我编译解决方案时得到更新,第二个位置在我对一个aspx文件使用“在浏览器中查看”时得到更新

有人知道可能导致这种行为的错误设置吗

更新:@Vinkal提供的答案让我相信Debug正在查看编译代码的
bin/
文件夹,而不是编译代码的
bin/x86/Debug/
。这可能是核心问题吗

我梳理了主项目的bin文件夹中的目录 我注意到DLL被保存到两个不同的地方:文件的根 bin文件夹和bin/x86/debug/。第一个地点是 在我编译解决方案时更新了,第二个是 在其中一个aspx上使用“在浏览器中查看”时得到更新 档案

检查
configuration Manager
以了解选择了什么
platform
,如下面的屏幕截图1所示

屏幕截图#1:Configuration Manager

如果创建新的
平台
(此处为
x86
),则
输出路径
将自动设置为
bin\x86\Debug\
。请参见下面的屏幕截图

屏幕截图#2:选择项目属性时的生成设置

因此,在编译项目时,将根据
输出路径
复制二进制文件(在我的例子中,
平台x86
bin\x86\Debug\
,在
平台目标
中设置)。如下面的屏幕截图所示,确认编译时复制所有二进制文件的位置。正如您所提到的,在编译解决方案时,bin文件夹的根目录将得到更新。因此,对于任何
平台(任何CPU、x86或x64)
您在
平台目标中设置的
项目
输出路径
必须设置为Bin文件夹的根目录

注意:如果
Post-Build event command
设置为复制二进制文件,它也将被复制到
Post-Build event命令中指定的
路径

在浏览器中查看:当使用浏览器中的
视图打开页面时,页面将再次被编译,并根据
项目属性
中指定的
输出路径复制二进制文件,如屏幕截图2所示。正如您所提到的,当您在浏览器中查看页面时,
bin\x86\Debug\
会更新,这表明当使用浏览器中的
视图打开页面时,
项目属性中的
bin\x86\Debug\
输出路径设置为
bin\x86\Debug\
,屏幕截图如下所示,二进制文件将进入
Bin
文件夹,平台被选为
任何CPU

生成后事件命令:如果您还设置了
生成后事件命令
,如下面的屏幕截图所示,以在两种情况下(即在浏览器中编译和查看
时)在不同位置复制路径,它将被复制到
生成后事件命令中指定的
路径

编辑:

如上所述,使用
元素:

您可以使用应用程序配置文件中的元素指定运行时在定位
程序集时应搜索的子目录。下面的示例显示了如何指定运行时应该搜索的目录

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>
我梳理了主项目的bin文件夹中的目录 我注意到DLL被保存到两个不同的地方:文件的根 bin文件夹和bin/x86/debug/。第一个地点是 在我编译解决方案时更新了,第二个是 在其中一个aspx上使用“在浏览器中查看”时得到更新 档案

检查
configuration Manager
以了解选择了什么
platform
,如下面的屏幕截图1所示

屏幕截图#1:Configuration Manager

如果创建新的
平台
(此处为
x86
),则
输出路径
将自动设置为
bin\x86\Debug\
。请参见下面的屏幕截图

屏幕截图#2:选择项目属性时的生成设置

因此,在编译项目时,将根据
输出路径
复制二进制文件(在我的例子中,
平台x86
bin\x86\Debug\
,在
平台目标
中设置)。如下面的屏幕截图所示,确认编译时复制所有二进制文件的位置。正如您所提到的,在编译解决方案时,bin文件夹的根目录将得到更新。因此,对于任何
平台(任何CPU、x86或x64)
您在
平台目标中设置的
项目
输出路径
必须设置为Bin文件夹的根目录

注意:如果
生成后事件命令
<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin\x86\debug"/>
      </assemblyBinding>
   </runtime>
</configuration>