スクリプトをプロジェクトに変換したい。スクリプトでは、#I を使用して、参照される .dll へのパスを設定します。このパスを .fsproj ファイルで直接指定する方法はありますか?
ありがとう
スクリプトをプロジェクトに変換したい。スクリプトでは、#I を使用して、参照される .dll へのパスを設定します。このパスを .fsproj ファイルで直接指定する方法はありますか?
ありがとう
このfsproj
ファイルは実際にはMS Buildスクリプトであるため、標準の MS Build 機能を使用して変数 (インクルード パスなど) を定義し、それらをプロジェクト ファイルで使用できます。これは、F# スクリプト ファイルでディレクティブを使用するほど単純ではありません#I
が、同様の機能が得られるはずです。
たとえば、次のIncludes.proj
ようにインクルード パスを定義するファイルを作成できます。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>C:\MyIncludePath</IncludePath>
</PropertyGroup>
</Project>
次に、ファイルを変更しfsproj
て上記のファイルを参照$(IncludePath)
し、参照で使用できます。残念ながら、これはテキスト エディターで行う必要があります (つまり、プロジェクトをアンロードし、変更してから再ロードします)。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Includes.proj" />
<!-- lots of other stuff -->
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="FSharp.Core" />
<Reference Include="MyAssembly">
<HintPath>$(IncludePath)\MyAssembly.dll</HintPath>
</Reference>
</ItemGroup>
<!-- lots of other stuff -->
</Project>
Project Properties
-> Reference Paths
->で参照フォルダを設定できますAdd Folder
。
これをプログラムで実行する場合は、参照パスを下<Project><PropertyGroup><ReferencePath>...
に設定し、dll の相対パスを に設定します<Project><ItemGroup><Reference><HintPath>...
。これは、逆方向 (fsproj から fsx ファイルへ) を実行するスクリプトですが、続行するためのヒントが得られる可能性があります。