6

スクリプトをプロジェクトに変換したい。スクリプトでは、#I を使用して、参照される .dll へのパスを設定します。このパスを .fsproj ファイルで直接指定する方法はありますか?

ありがとう

4

2 に答える 2

7

この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>
于 2012-05-23T12:59:35.237 に答える
5

Project Properties-> Reference Paths->で参照フォルダを設定できますAdd Folder

これをプログラムで実行する場合は、参照パスを下<Project><PropertyGroup><ReferencePath>...に設定し、dll の相対パスを に設定します<Project><ItemGroup><Reference><HintPath>...。これは、逆方向 (fsproj から fsx ファイルへ) を実行するスクリプトですが、続行するためのヒントが得られる可能性があります。

于 2012-05-23T13:16:35.460 に答える