コード例 #1
0
        public static CSharpCompilationOptions GetCompilationOptions(this IAnalyzerResult analyzerResult)
        {
            var compilationOptions = new CSharpCompilationOptions(analyzerResult.GetOutputKind())
                                     .WithNullableContextOptions(analyzerResult.GetNullableContextOptions())
                                     .WithAllowUnsafe(analyzerResult.GetPropertyOrDefault("AllowUnsafeBlocks", true))
                                     .WithAssemblyIdentityComparer(DesktopAssemblyIdentityComparer.Default)
                                     .WithConcurrentBuild(true)
                                     .WithModuleName(analyzerResult.GetAssemblyName())
                                     .WithOverflowChecks(analyzerResult.GetPropertyOrDefault("CheckForOverflowUnderflow", false));

            if (analyzerResult.IsSignedAssembly())
            {
                compilationOptions = compilationOptions.WithCryptoKeyFile(analyzerResult.GetAssemblyOriginatorKeyFile())
                                     .WithStrongNameProvider(new DesktopStrongNameProvider());
            }
            return(compilationOptions);
        }
コード例 #2
0
 public static string GetSymbolFileName(this IAnalyzerResult analyzerResult)
 {
     return(Path.ChangeExtension(analyzerResult.GetAssemblyName(), ".pdb"));
 }