2009-05-23 16 views
1

我一直在尋找這個很長一段時間,我可以找到任何東西。我有2個項目。一個叫ConsoleApp,另一個叫ConsoleLib。 ConsoleApp具有對ConsoleLib的引用。 我如何告訴visual studio將程序集複製到自定義路徑而不是應用程序路徑? 我想要的意思是,當我構建解決方案,我希望得到這個文件夾結構如何使用Visual Studio將程序集編譯並部署到自定義路徑中?

APPPATH \ ConsoleApp.exe
APPPATH \ LIB \
APPPATH \ LIB \ ConsoleLib.dll

+0

首先,謝謝爲答案。第二s_ruchit我已經知道這個可能性。我已閱讀Effective C#(Bill Wagner Book),您可以爲程序集設置私有bin路徑。爲了加載器也搜索該路徑。希望將lib程序集移動到另一個目錄的原因是爲了保持二進制文件更好的結構。 Mi的問題是我如何設置一個程序集的私人bin路徑,或者我是否錯過了這個概念?感謝您再次回答 – Javier 2009-05-23 20:31:53

回答

2
  • 在您的ConsoleApp項目中,請參閱ConsolLib項目,該項目將收到ConsolApp \ Bin中的ConsolLib.dll。

  • 現在在ConsoleApp項目轉到PostBuild命令那裏你可以sepcify你可以wnat構建後執行的操作,有你可以把它複製到ConsoleApp \ lib中。

1

您需要在應用程序項目中使用postbuild命令來創建lib目錄並將庫文件複製到其中。

如果你決定這樣做(除非你有很多dll,並且感覺壓力組織它們,我不會推薦),你還需要在你的app.config文件中添加一個探測路徑元素,它會告訴它在哪裏尋找圖書館。 See here

0

使用postbuild命令(我使用的子目錄 「放」 輸出)

mkdir "$(TargetDir)release\" 
mkdir "$(TargetDir)release\bin\" 

copy "$(TargetDir)*.*" "$(TargetDir)release\" 
copy "$(TargetDir)*.dll" "$(TargetDir)release\bin\" 
copy "$(TargetDir)*.pdb" "$(TargetDir)release\bin\" 

del "$(TargetDir)release\*.pdb" 
del "$(TargetDir)release\*.dll" 
del "$(TargetDir)release\*vshost*.*" 

在隨後的app.config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="bin"/> 
    </assemblyBinding> 
</runtime> 

希望這有助於

相關問題