roslyn 编译dll 设置公钥和版本
时间: 2024-05-07 18:21:09 浏览: 14
在使用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`方法从上述代码中删除。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)