私は最終的に私が気に入らない回避策を見つけましたが、私は前進する必要があります。この問題を回避するために、リンクとしてプロジェクトのルートに必要なライブラリを追加し、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 など
ライブラリはサードパーティのツールであり、実際には自分のフォルダに含まれています:
D:\ツール\ MyThirdPartyLib \ Distributation \ LibA.dll D:\ツール\ MyThirdPartyLib \ Distributation \ LibB.dll
Dでのライブラリを有することにより:\作業\ MyAppに\依存関係として動作しませんでした
C:ClickOnce
がでアプリをインストールしますUsers \ユーザーのAppData \ローカル\アプリ\ 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
にリンクされたファイルを指していることにより、 :\ Work \ MyApp \ Depedencies \ LibA。DLL D:\作業\ MyAppに\ Depedencies \ LibB.dll
ではなく、それらを指している:
D:\ツール\ MyThirdPartyLib \ Distributation \ LibA.dll D:\ツール\ MyThirdPartyLib \ Distributation \ LibB .dll
これはトリックを行ったようです。
MyApp Solution
- MyApp Project
- MyApp.csproj
- MyApp.xaml
- ...
- LibA.dll
- LibB.dll
- ...
しかし、それは今のために行う必要があります:それについての私の唯一の牛肉は、今私は、私は好きではないVisual Studioでの私のプロジェクトのルートにリストされている10個の奇数のファイルを持っていることです。
他人に役立つことを願っています!
[プロジェクト] - > [プロパティ] - > [ビルド] - > [出力] - > [出力パス]をクリックすると、デバッグの代わりに../Debugまたはその他の相対パスが追加されます – sTrenat
問題はビルド場所ではなく、ClickOnceの出力特定のファイルをアプリケーションのルートフォルダにコピーしたい場合に、インストール時に同じサブフォルダにサブフォルダに含まれるファイル – Thierry