2017-07-25 2 views
0

enter image description here TL; DRデバッグモードを実行しているときにアプリケーションが動作しますが、リリースでは動作しません。リリースされたバージョンでは無効な文字ですが、デバッグモードでは無効です

MVVMを使用してファイルパスを読み込んで、一部のデータを処理しています。デバッガのバージョンを使用しているときに、読み込み、検証、変換が正常に行われますが、公開/リリースされたバージョンを使用しているときにエラーが発生するため、どこで発生するのかを追跡できません。ひとつは、長いファイルパスに付随して@ "\\?\"を含めることだったということです。 添付ファイルは私たちのコンバータです。

public static string CheckFilePath(string filePath) 
    { 
     //Network Location 
     if (filePath.StartsWith(@"\\")) 
     { 
      filePath = filePath.TrimStart(@"\\".ToCharArray()); 
      return @"\\?\unc\" + filePath; 
     } 
     //Local location 
     if (!filePath.StartsWith(@"\\?\") && (!filePath.StartsWith(@"\\") || !filePath.StartsWith(@"\\?\UNC\"))) 
     { 
      return @"\\?\" + filePath; 
     } 
     return filePath; 
    } 

また、4.6.2を使用しており、これを使用して長いファイルパスを試してみてください。これは、@ "\\?\"または@ "\\"があるかどうかを確認するためのコンバーターであり、長いパスには以下のものが必要です。このコンバータは問題ではないかもしれません...どんな助けも素晴らしいでしょう!

+0

コードにトレースを追加して、リリースモードで何が起こっているのかを確認することをお勧めします。 –

+0

ありがとう、私はそれを試してみましょう。 – bird

+0

すべてのものを強制的に再構築するbinフォルダを削除します。デバッグとリリースの両方で同じソースファイルを使用していないようです。 – jdweng

答えて

0

皆さん、助けてくれてありがとうございましたが、回避策が見つかりました。私の公表されたバージョンとjdwengが言ったような私のリリースのバージョンの種類との間に何か問題があることが分かります。リリースから実行可能ファイルを実行するだけでは動作しますが、パブリッシュ経由でインストールしようとすると動作しません。

関連する問題