1

CSScriptLibrary を使用して実行時にアセンブリを作成しています。すべて正常に動作しますが、結果のアセンブリには必要なアセンブリ情報がありません。

アセンブリ情報属性 (すべての C# プロジェクトの AssemblyInfo.cs にあります) をコード文字列に含めると、コンパイルは「重複属性エラー」で失敗します。

アセンブリを作成するコードは次のとおりです。

try
{                
      compiledResultAssembly = CSScriptLibrary.CSScript.LoadCode(code, assemblyReferences.ToArray());                
}
catch(Exception ex)
{ }

「compiledResultAssembly」がバージョン 0.0.0.0 にならないようにアセンブリ バージョンを指定するにはどうすればよいですか?

CSScriptLibrary のバージョンは 3.11.1.0 です。

前もって感謝します


編集 08.07.2019

解決策を見つけました。CSScriptLibrary は、ある時点で AssemblyDescription 属性を挿入します。これにより、「属性が重複しています」というエラーが発生します。

アセンブリのバージョン情報を指定するには、次のスクリプト コードのセットアップを使用します。

using System.Reflection;
using System.Runtime.InteropServices;
// all your usings

[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.2.3.4")]

namespace YourNamespace
{
    // your code here
}

アセンブリ属性はコードの最初に配置する必要があり、他の場所には配置できないことに注意してください。

4

0 に答える 0