roslyn 编译dll 设置公钥和版本
时间: 2024-05-07 18:21:09 浏览: 17
在使用Roslyn编译DLL时,可以使用以下代码设置DLL的公钥和版本:
```csharp
var compilation = CSharpCompilation.Create("MyLibrary")
.WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))
.AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location))
.AddSyntaxTrees(syntaxTree);
var publicKey = new byte[] { /* your public key here */ };
var version = new Version(1, 0, 0, 0);
var options = new EmitOptions()
.WithPublicKey(publicKey)
.WithFileVersion(version);
var result = compilation.Emit("MyLibrary.dll", options: options);
```
其中,`publicKey`是一个byte数组,表示DLL的公钥;`version`是一个Version对象,表示DLL的版本号。在`EmitOptions`中,使用`WithPublicKey`方法和`WithFileVersion`方法分别设置公钥和版本号。
请注意,使用公钥签名DLL可以确保DLL的完整性和来源,但是在使用时需要提供私钥,否则无法加载DLL。如果您不需要对DLL进行签名,可以将`WithPublicKey`方法从上述代码中删除。