1
我正在做一些互操作與非託管.dll
s在一個標準的c#項目。我不能將這些.dll
作爲簡單的引用添加,並且必須使用P/Invoke來實際使用它們。他們不包括清單,因此做任何聰明的反射的東西來動態加載這些東西(並且因此解決將它們包括爲明確的單獨文件的問題)是根本不可能的。作爲鏈接添加到項目文件夾內總是複製到輸出的根目錄
我並不關心安裝程序的版本,我可以告訴WiX(或者我選擇的任何安裝平臺)準確地將目標系統放在哪裏。
問題是在調試輸出方面,我需要這些.DLL與我自己的項目的可執行文件並排,但我不想讓他們混淆我的實際託管代碼。
所以我的情況是這樣的;
- 我將幾個.dll文件作爲鏈接添加到項目的文件夾中。
- 我嘗試更改.csproj以在調試輸出的根目錄輸出鏈接的文件。
它看起來是這樣的:
<None Include="..\..\externals\MyLibraries\ADll.dll">
<Link>TidyFolder\ADll.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Now, normally you'd change the <Link>
tag to where you want the output to go,但是這樣做:
<None Include="..\..\externals\MyLibraries\ADll.dll">
<Link>ADll.dll</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
更改鏈接.dll
s的我的項目資源管理器內駐留在該文件夾;它確實輸出,但雜亂是不受歡迎的,也是爲什麼我想把它們放到一個文件夾中的原因。
TL; DR:如何同時控制項目中鏈接項目的可見位置以及調試時的輸出位置。
他們沒有得到裝入運行的裝配當我這樣做。我知道在可管理的(可怕的第三方)庫中可以訪問的唯一方法是對它們進行並行部署。 – Izzy