我通过在主项目的bin文件夹的目录梳理,并 我注意到的DLL被保存到两个不同的地方:中 根bin文件夹,和斌/ 86 /调试/。当我简单地编译解决方案时,第一个位置变得更新了 ,第二个位置变为当我在其中一个aspx 文件中使用“在浏览器中查看”时更新的 。
检查Configutation Manager
关于如何选择platform
如下面的屏幕快照#1所示。
屏幕截图#1:配置管理器
如果你创建新的
platform
(这里
x86
)
,Output Path
自动设置为bin\x86\Debug\
。请参阅下面的截图。
屏幕截图#2:构建设置时,项目属性选择
所以,当你编译项目,二进制文件会根据我的情况Output Path
(这里被复制,bin\x86\Debug\
对于在Platform Target
中设置的Platform x86
)。按照下面的屏幕截图所示进行确认,在编译时所有二进制文件都将被复制。正如您所提到的,当您编译解决方案时,bin文件夹的根目录正在更新。所以,你的项目Output Path
必须设置为根Bin文件夹为您在Platform Target
注意设置任何Platform (Any CPU, x86 or x64)
:如果Post-Build event commmand
设置为复制二进制文件,它也将被复制到指定的Path
Post-Build event command
。
浏览器查看:网页时使用View in browser
打开,网页将再次被编译的二进制文件,并根据在Project Properties
指定的Output Path
如图所示屏幕截图#2复制。正如您所提到的,当您在浏览器中查看页面时,bin\x86\Debug\
会更新,它表示在您的Project Properties
中设置为bin\x86\Debug\
。在下面显示的屏幕截图中,当页面使用View in Browser
打开时,Binary将转至Bin
文件夹和Platform被选定为Any CPU
生成后事件命令:如果您还设置了Post-build event command
,如下图所示的屏幕截图,该路径复制在不同的位置,在这两种情况下(即当你编译和View in Browser
),它会被复制到指定的Path
Post-build event command
编辑:
如前所述here,使用<probing>
元素:
您可以在使用元素应用程序配置文件指定运行时在查找时应搜索的子目录。以下示例显示如何指定运行时应搜索的目录。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
的privatePath
属性包含运行时应该寻找assemblies
目录。如果应用程序位于C:\ Program Files \ MyApp,则运行库将查找未在C:\ Program Files \ MyApp \ Bin,C:\ Program Files \ MyApp \ Bin2 \ Subbin中指定代码库的assemblies
,和C:\ Program Files \ MyApp \ Bin3。 在privatePath指定的目录必须是应用程序根目录
所以你的情况的子目录中,修改web.config
如下图所示
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin\x86\debug"/>
</assemblyBinding>
</runtime>
</configuration>
右键点击你的解决方案,点击'Configuration Manager',检查你的项目是否被选中建立。 – dotctor 2015-02-24 20:53:19
你有任何本地程序集?任何不是.NET的东西? – beautifulcoder 2015-02-24 20:54:32
@dotctor,解决方案中的所有项目都将被检查以构建在解决方案的配置管理器中。 – 2015-02-24 20:56:29