2017-01-27 13 views
3

これはおそらくバグですが、私のソリューションには2つのF#プロジェクトがあります。 1つはコンソールアプリで、もう1つはテストアプリです(技術的にはコンソールでもあります)。ソリューションには3つの他のC#プロジェクトもあります。app.configをexe.configに強制する方法

これまで私のソリューションを構築した時点で、スタートアッププロジェクトのapp.configはfoo.exe.configにコピーされませんでした。代わりにデフォルトのF#設定ファイルが作成され、そこに配置されます。私の溶液中のアプリケーションのconfigsのこの

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

なしのように見えるが生成されている

ファイルでもリモートでそのように見えます。私はapp.configsがコンテンツモードに設定されていることを確認しました。これは主なアプリケーションの単なる問題です。テストアプリはapp.configをbin/debugにコピーします。

私はプログラムを実行する前に、binを開いて適切なexe.configをディレクトリにドラッグアンドドロップすることに頼ってきました。おそらく、おそらく適切に構成されていないものが何であるか把握するためにどこから始めなければならないのか分かりません。

+0

解決策の詳細を提供することを検討してください。それを推測して再現するのは難しいでしょう。 – bytebuster

+0

これはうまくいけば 'Paket'が生成するように見えます。しかし、私はあなたのプロジェクトファイルを見ることなく、このファイルがどこから来るのかを正確に伝えることはできません。チャンスは、あなたが気づいていないところに何かがあることです。 –

+0

私はあなたがコンテンツとしてapp.configをマークする必要はないと思う - 実際には新鮮なF#コンソールアプリケーションを作成するときのデフォルトのプロパティは、コピーされていない/されていない(そしてデフォルトの '.targets'ファイルのどこかに明示的にコピーして名前を変更します)。 – scrwtp

答えて

3

なぜあなたはバグだと思いますか?何千ものapp.configsが1秒ごとにコピーされます。あなたはかなりうまくテストされていると思います。あなたのプロジェクトがどのように設定されているかには多分問題があります。プロジェクトファイルを調べることができます(ヒント:これは読める通常のXMLファイルです)。

VSを使用してプロジェクトをビルドしている場合は、まずMSBuildの詳細をバンプすることをお勧めします(ツール - >オプション - >プロジェクトとソリューション - >ビルドと実行タブ)。

これを済ませたら、プロジェクトをきれいにして再構築します。 CopyAppConfigFileを検索すると、Build Outputウィンドウのapp.configファイルをコピーするタスクの出力を見つけることができます。これは、何かが実際にコピーされた場合、そしてどこからコピーされるのかを教えてくれるはずです。

同様に、ビルドプロセスの一部である他のタスクが、適切なログ出力を生成する限り、何らかの理由でファイルを上書きしようとしているかどうかを調べることができます。

+0

MSBuild(ファイル)の冗長化...非常に可能;-) robkuz

+0

@robkuz:あなたは私が見たものを見たことがありません...;) – scrwtp

+0

何らかの理由でmsbuildがobj \ Debug \ Crawler.fsproj.Crawler.exe.configで生成されたデフォルトの設定ファイル。ある時点で、そこにはまった。私は行って手を削除し、すべて正常に動作しています。 – Yojin

関連する問題