9

本当に私の正確な質問の確認、しかし、ここではないが、状況です:のVisual Studio管理者モード

私は、私は、Visual Studioでそれがない2012年に開発していたアプリケーション(リサイズ、C#.NET)を持っています多くのことが重要ですが、特定の場所からファイルを読み込む必要があります。

この場合、ファイルの場所はサーバー上にあり、マシンにはファイルにアクセスするためのマップされたネットワークドライブのセットアップがあります。手動でWindowsエクスプローラでファイルに移動できます。

私は問題を強調している自分のコードに次の行があります。

System.IO.File.Exists("X:\\A Folder\\a_file.txt"); 

を、そのファイルはその場所に存在しません。しかし、これは問題が発生する場所です。ソリューションをビルドし、 "bin"フォルダから.exeを直接実行すると(ダブルクリック)コードは問題なく、ファイルを見つけます。しかし、私はVisual Studioでそれを実行する場合、私は "ファイルが見つかりません"例外が表示されます。

Visual Studioが「管理者」モードで実行されていることを私は控えています(これはなぜ必要なのか忘れていますが、私はそうしています)。これは、「管理者」アカウントに「X:\」ドライブがマップされていないと考えると意味があります。しかし、先週Windows 10にアップグレードするまでこれは問題になりませんでした。

だから私の質問はです:

のWindows 10で異なるVisual Studioの管理者モードの仕事をしていますか?この場合、マップされたネットワークドライブを別々に処理しますか?

私はWindows 7からアップグレードしているので、この問題が8および8.1にも存在するかどうかを確認することはできません。

誰かが尋ねる前に、にはがマップされたドライブであると言いましょう。 UNCパスは許可されていません!

+0

多分それはあなたの質問に関連していないのが、Windows 10 VS 2012の更新5.参照のHTTPのサポートされているシステムのリストではないで:// WWW .microsoft.com/ja-us/download/details.aspx?id = 48708あなたは将来他の問題に遭遇するかもしれません。 – qxg

+0

@qxg:分かり次第更新4になるようなので、5に移動して差が出るかどうかを確認してください... – musefan

+0

...アップデート5の違いはありません – musefan

答えて

5

私は解決策/回避策を見つけました。一種の無駄な賞金のように思えるので、他の提案があれば投稿してください。あるいは、誰かが私のソリューションのより詳細なバージョンを作ることができたとしても、私はそれを授与するでしょう。


問題はおそらく、Visual Studioの固有のものではなく、高い権限で実行されている任意のアプリケーションで発生するであろう。とにかく、私が見つけた解決策は、管理者モードで実行しているときに同じ共有ドライブにアクセスできるようにするレジストリキーを追加することです。

HKEY_LOCAL_MACHINE/SOFTWARE /マイクロソフト/ Windowsの/ CurrentVersionの/ポリシー/システム

そして追加するためのキーが呼び出されます:

レジストリキーの場所がある

EnableLinkedConnections

そして、私は、Windows 7を実行しているマシンで確認し、彼らはこのキーを持っていない、まだ彼らはまだ正常に動作10x00000001

の値を持つDWORDとして作成する必要があります。だから私はこれが唯一の解決策ではないと思っていますが、それはうまくいくようです(副作用はまだありません)。 Windows 10には、既定でマップされたドライブが自動的に「管理者として実行」できるようになる特定の設定があると仮定します。

参考として、this information hereが見つかりました。

実際には、このregキーを使用する場合はhere is a more "official" recommendationです。

+0

これはホットフィックスです。これを手動で行うのではなく、別の方法であるかどうかはわかりません。ここに[リンク](https://support.microsoft.com/en-us/kb/2878604) – Webruster

2

これは、マシンの設定だけで、Windows 10とは関係がない可能性があります。あなたが描いていることは普通で、this KB articleで覆われています。何も確認できませんので、推奨される回避策を試してください。必要に応じて、superuser.comにフォローアップしてください。

+0

私は最初の方法を試しました"Windows以外のバイナリの同意を求めるプロンプト"に既に設定されていましたが、私は「同意を求めるプロンプト」にも示唆しているように試みましたが、それは助けになりませんでした。私は、たとえそれがうまく動作したとしても、それを解決策として望んでいないので、.batメソッドを試してみたくない。私はWindows 10を搭載した唯一の開発者であり、この問題を抱えている唯一の開発者です(ドメイングループのポリシーの問題だと思います)。この問題は、Windows 10にアップグレードする前に発生したことはありません。ITスタッフがオフィスに戻ってきたとき、私はGPの問題であると認識できるかどうか確認するためにそれらを調べますが、確信が持てません – musefan

+0

この記事に記載されているEnableLinkedConnectionsレジストリキーは、まったく役に立たなかったでしょうか? Bummer .. –

+0

それも見ていないかもしれませんが、問題を解決するためのその他の提案を行う「回避策」セクションに移動してください。私はあなたに賞金を与えました。なぜなら、それは数分で失効するからです(そして私はreg編集ビットを見逃していると悪いと感じています)。しかし、これはまともな回答ではありません。 – musefan

0

異なるユーザー/システムタスクが実行されている可能性があります。したがって、Xドライブはマップされていますが、他のドライブはマップされていません。あなたは、Windowsインストールで追加のユーザーにドライブマッピングを実行することもできます。あなたが述べたように、これはWindows 10のみの問題ではなく、Windows 7以上の昇格された権限です。

X:パスに設定されたパラメータを使用して実行時にロードするか、実行時に解決されドライブをマッピングする必要がないUNCパスを使用することもできます。コードで

\\ServerNameOrIP\A Folder\a_file.txt. 

、次のものが必要になります。

System.IO.File.Exists("\\\\ServerName\\A Folder\\a_file.txt"); 
関連する問題