問題タブ [shadow-copy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
10466 参照

c# - NUnit を使用した単体テスト中に目的の / 正しいアセンブリ パスを取得する

モジュールの単体テストのために moq の実験を始めたところです。

実際、単体テストを書かなければならないクラスは

Assembly.GetExecutingAssembly().Location内部的にパスを決定します。

ただし、実行中のアセンブリのパスが異なるため、単体テストの作成中は機能しません (単体テスト アセンブリのパスが使用されます)。

AppData\\Local\\Temp\\3ylnx32t.ukg\\TestApplication.Test\\assembly\\dl3\\aeb938e6\\f3664631_d982ce01.

シャドウコピーを無効にしてみました。

それでも、うまくいきません!

任意の提案をいただければ幸いです。前もって感謝します。

0 投票する
0 に答える
97 参照

c# - Nunit シャドウ コピー dbghelp.dll の問題

私の C# および MC++ アプリケーションが dbghelp.dll の定義されたバージョン (デバッグ ツールから) を確実に使用するようにするために、すべてのアセンブリが存在するアプリケーション ディレクトリにそれを配置しました。これは、古いバージョンまたは新しいバージョンのマシンでも問題なく機能します。

dbghelp.dll からいくつかの機能を呼び出す NUnit テストがあります。シャドウ コピーを有効にすると、NUnit は、アセンブリ フォルダーにあるものではなく、システム ディレクトリの dbghelp.dll を使用します。Windows フォルダに古いバージョンの dbghelp.dll があるシステムでは、一部の機能が利用できない可能性があるため、これはテストに失敗します。

シャドウ コピーがなくても、同じシステムで動作し、アセンブリ ディレクトリの dbghelp.dll が使用されます。NUnit の開発者はシャドウ コピーを無効にすることを推奨していません (また、構成できない場合もあります)。

0 投票する
0 に答える
311 参照

dll - アンインストール中にアセンブリの場所からキャッシュを削除する

そのための Office アドインと Windows インストーラー アプリケーションを作成しました。この記事によると、addins dll'a はこのようなディレクトリにコピーされC:\Users\Robin\AppData\Local\assembly\dl3\VBJZ5WH8.6NJ\HRZA3JXN.LVG\b0520efe\3a5b99ef_2e21cb01\GoldMail Outlook Add-In.DLLます。アンインストール プロセス中にコピーしたファイルを削除したいと考えています。C:\Users\Robin\AppData\Local\assembly\dl3\私のインストーラーアプリケーションで(実際にはアンインストールで)コピーされたファイルへのフルパスを取得する方法を教えてください。レジストリまたはその他の場所に保存されていますか? ファイルが複数回コピーされていることに気付きました。よろしくお願いします。

0 投票する
1 に答える
1196 参照

c# - AppDomain.ShadowCopyFiles が文字列なのはなぜですか?

.Net には、アセンブリをコピーしてファイルのロックを保持するための ShadowCopy 機能があります。次の 2 つのプロパティがあります。

  1. AppDomain.ShadowCopyFilesAppDomainSetup を使用する
  2. AppDomainSetup.ShadowCopyFilesそれを内部に保存しますstring[]

AppDomainSetupstring Value[]構成を保存するために使用されるフィールドがあります。私にとって奇妙なことはAppDomainSetup.ShadowCopyFiles、それが文字列プロパティであり、実際の型の代わりに"true"orを設定する必要があることです。"false"bool

のそのプロパティの実装は次のAppDomainSetupとおりです。

AppDomain.ShadowCopyFiles の実装は次のとおりです。

しかし、なぜAppDomainSetupこのプロパティにはstring? boolMicrosoft が のような変換ロジックを使用しなかったのはなぜAppDomain.ShadowCopyFilesですか?

このような少し臭いコードが にあるのは奇妙でAppDomainSetup、私が行方不明になっている本当の理由があるのではないかと考えていました。

0 投票する
3 に答える
5598 参照

c# - 実行時に exe を上書きする AppDomain を使用したシャドウ コピー

次のサンプル アプリでは、新しい を作成しAppDomain、シャドウ コピーを有効にして実行します。新しいものからAppDomain、元のメイン exe を削除 (置換) しようとします。しかし、「アクセスが拒否されました」というエラーが表示されます。興味深いことに、プログラムを起動した後、Windows エクスプローラーからメインの exe の名前を変更できます (削除はできません)。

シャドウ コピーは、メイン exe の実行時上書きに対して機能しますか?