JetBrains Rider 无法识别属性生成的构造函数

时间:2021-06-26 02:18:53

标签: c# visual-studio jetbrains-ide

下面代码中的

[AutoConstructor]会自动生成一个构造函数(如下图):
enter image description here

它在 Visual Studio 中运行良好,但 JetBrains Rider 出现错误消息:
enter image description here

我不明白。 . .

(因为英语不好,所以用谷歌翻译提问,请见谅)

using System;
using System.Linq;
using ComputeSharp;

namespace ComputeSharpTest
{
    class Program
    {
        static void Main(string[] args)
        {
            // Allocate a writeable buffer on the GPU, with the contents of the array
            // Get some sample data
            int[] array = Enumerable.Range(1, 1000000).ToArray();

            // Allocate a GPU buffer and copy the data to it.
            // We want the shader to modify the items in-place, so we
            // can allocate a single read-write buffer to work on.
            using ReadWriteBuffer<int> buffer = Gpu.Default.AllocateReadWriteBuffer(array);
            
            // Launch the shader
            Gpu.Default.For(buffer.Length, new MultiplyByTwo(buffer));

            // Get the data back
            buffer.CopyTo(array);
        }
    }

    [AutoConstructor]
    public readonly partial struct MultiplyByTwo : IComputeShader
    {
        public readonly ReadWriteBuffer<int> buffer;

        public void Execute()
        {
            buffer[ThreadIds.X] *= 2;
        }
    }

}

1 个答案:

答案 0 :(得分:0)

根据 https://github.com/Sergio0694/ComputeSharp/issues/116(以及 https://github.com/Sergio0694/ComputeSharp#requirements):

<块引用>

为了正常工作,ComputeSharp 还需要源 生成器作为分析器添加到消费项目中,以便它 可以在编译代码时运行。

您可以通过将以下代码添加到您的 .csproj 文件中来实现,只需 就像在示例项目中一样:

<ItemGroup>
    <ProjectReference Include="..\..\src\ComputeSharp\ComputeSharp.csproj" />
    <ProjectReference Include="..\..\src\ComputeSharp.SourceGenerators\ComputeSharp.SourceGenerators.csproj"
                      OutputItemType="Analyzer"
                      ReferenceOutputAssembly="false"
                      PrivateAssets="contentfiles;build" />
  </ItemGroup>

此外,您需要确保您使用的是 .NET 5(不是 .NET Framework/Core 的早期版本)。

如果您的问题仍然存在,您可能还希望尝试使用 VS 2019 而不是 Rider。