我終於找到了我不喜歡的解決方法,但我需要繼續前進。爲了避免這個問題,我將所需的庫作爲鏈接添加到我的項目的根目錄,並仍將BuildAction
設置爲Content
和CopyToOutputDirectory
至Copy if newer
。
我想我會用一個例子來解釋它,因爲它可能會更有意義。
項目路徑:C:\工作\ MyApp的,它包含以下子文件夾:
d:\工作\ MyApp的\ MyApp.csproj d:\工作\ MyApp的\ MyApp.xaml .. D:\ Work \ MyApp \ Bin \ Debug D:\ Work \ MyApp \ Bin \ Release D:\ Work \ MyApp \ Bin \ Release \ MyApp.exe D:\ Work \ MyApp \ Depedencies \ LibA。 dll D:\ Work \ MyApp \ Depedencies \ LibB.dll etc ...
這些庫是第三方工具,實際上包含在它們自己的文件夾中:
d:\工具\ MyThirdPartyLib \ Distributation \ LibA.dll d:\工具\ MyThirdPartyLib \ Distributation \ LibB.dll
通過具有d庫:\工作\ MyApp的\依賴也無法正常工作ClickOnce
將安裝在應用程序:
C:\用戶\\應用程序數據\本地\ APPS \ 2.0 \ MyApp.exe的
和它安裝定位於依賴子文件夾中的文件:
C:\ Users \\ AppData \ Local \ Apps \ 2.0 ... \ Dependencies \ LibA.dll C:\ Users \\ AppData \ Local \ Apps \ 2.0 ... \ Dependencies \ LibB.dll
這導致我的應用程序無法工作。
要解決它,我最終加入LibA.dll和LibB.dll到我的項目的根目錄爲「鏈接文件」,並設置其BuildAction
和CopyToOutputDirectory
而不是由鏈接文件指向
d :\工作\ MyApp的\ Depedencies \力霸。DLL d:\工作\ MyApp的\ Depedencies \ LibB.dll
而是他們指出:
d:\工具\ MyThirdPartyLib \ Distributation \ LibA.dll d:\工具\ MyThirdPartyLib \ Distributation \ LibB .dll
而這似乎已經做到了。我大約只牛的是,現在我已經得到了我在Visual Studio項目的根,我不喜歡列出的10個怪文件:
MyApp Solution
- MyApp Project
- MyApp.csproj
- MyApp.xaml
- ...
- LibA.dll
- LibB.dll
- ...
但它將對現在要做的。
希望它可以幫助別人!
點擊project - > Properies - > Build - > Output-> Output Path,結束時只添加../Debug而不是Debug或其他相對路徑 – sTrenat
這個問題不在構建位置,而在於ClickOnce的輸出方式當我希望將特定文件複製到應用程序的根文件夾中時,將安裝在子文件夾中的文件安裝到同一子文件夾中。 – Thierry