7

最近、新しいMacラップトップを入手し、Parallels仮想マシンでVS2010を実行しています。ほとんどの場合うまくいきますが、プロジェクトがネットワーク共有を介してアクセスされているという事実に関連して、特定のプロジェクトタイプのデバッグに問題があります。テストランナーがテストのDLLをロードできないため、テストプロジェクトは実行されません。WebプロジェクトはVisualStudiomini Webサーバーで実行できず、次の例外がスローされます。

'An error occurred loading a configuration file: Failed to start monitoring changes to path\to\web.config'.

私はこれに少し運が良かったので、夜をウェブのトロール網で過ごしました。これらの 2つの投稿を読んだ後、通常のCasPolの変更を試しましたが、初期のVS2010ベータの1つからこの投稿を見つけました。これは、CasPolが.NET4.0およびVS2010で不要/サポートされていないことを示しています。

ネットワーク共有には、マップされたドライブとUNCパスの両方を介してアクセスできます。UNCパスのホストは.pfs;です。この投稿によると、 Windowsはドットで始まるホスト名をインターネットゾーンで発生したものとして扱います。

仮想マシンは、管理者アカウントでアプリケーションを実行します。管理者アカウントは、ファイルやフォルダーを作成、読み取り、書き込み、および削除するために必要なすべてのアクセス許可をネットワーク共有に持っているようです。エクスプローラーで適切なフォルダーのセキュリティプロパティを表示できないため、「持っているように見える」と言います。[セキュリティ]タブが表示されないだけです。

VS2010のネットワーク共有からWebおよびテストプロジェクトを正常にロードおよびデバッグできた人はいますか?

更新: MacBookのIPアドレスを使用して別のネイティブWindowsマシンにVS2010のソリューションをロードしようとしましたが、結果はまちまちでした。テストプロジェクトは、次のエラーで再度実行できませんでした。

Error loading \\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll: Could not load file or assembly 'file://\\192.168.0.4\alastair\Code\project\bin\Debug\Tests.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

ただし、ASP.NET MVCプロジェクトはこの設定で期待どおりに正しく実行され、MacBookのNETBIOS名を使用すると、ここでまったく同じ結果が得られます。

もちろん、これを行うには、Snow LeopardでSMB共有を有効にする必要がありました。これは、ParallelsVMの場所にアクセスするために必要ではありませんでした。たぶん、共有の権限を変更するために微調整する必要があるParallelsの設定がありますか?

また、モデレーターがStackOverflowへの移動をリクエストするためにこの質問にフラグを付けました。SuperUserよりも適切なフォーラムかもしれないと思います。

4

2 に答える 2

4

この質問<loadFromRemoteSources enabled="true"/>への回答で提案されているように、devenv.exe.configのランタイム要素の下で設定してみてください。問題が修正されました...VisualStudioは、共有からプロジェクトをロードするときに警告を表示しますが、テストの実行は機能するようになりました。

于 2010-07-15T23:46:11.773 に答える
0

これは、問題が実際にWindowsの「インターネットゾーンで発生したものとしてドットで始まるホスト名を処理する」ことにあることを前提としています。それは別のことかもしれませんが、以下のオプション(3)は、問題の一部としてこれを(非)証明するための迅速な手段であるはずです。


ピリオド(.)は、DNSホスト名で頻繁に使用される文字ではありません。これは通常、ホスト名とドメイン名の間の区切り文字として解釈されます(例:localhost.localdomain)。DNSホスト名は通常、「LDH」(文字、数字、ハイフン)に制限されています。

UNCパスとWindowsネットワーク(NetBIOS)名も同様の問題を抱えている可能性があります。RFC3696によると、ピリオドは有効ですが、 RFC1035に従ってホスト名内で使用されるピリオドをエスケープする必要があります。RFC1035を正しく読んでいる場合、ホスト名は\.pfsの代わりになり.pfsます。

あなたの問題がうまくいくかどうか疑問に思います

  1. (共有サーバー上の)ホスト名をドットを含まないものに変更しました(それに応じてクライアントを更新しました)、
  2. UNCパスを(クライアント上の)共有に変更して、期間に適切なエスケープシーケンスを使用するか、または
  3. ホスト名の代わりにIPアドレスを使用するように、UNCパスを(クライアント上の)共有に変更しました。
于 2010-06-10T19:16:22.573 に答える