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