c # - Revit api - file .csproj plugin multi versi

Sep 22 2020

Saya mencoba membuat hello Worldplug-in multi-versi sederhana untuk Revit dan saya menemukan artikel ini yang saya coba ikuti. Namun, saya tidak akan terlalu jauh. Saya tidak begitu paham dengan cara kerja file .csproj. Saya telah membuat plugin sebelumnya untuk setiap tahun Revit tetapi tidak multi-versi.

Berikut adalah kode .csProj saya di bawah ini. Saya mencoba memulai dari yang kecil dan hanya menangani .net framework 4.5.2 yaitu Revit 2018. Anda juga akan menemukan cuplikan di bagian bawah untuk properti proyek saya. Tidak ada lagi yang terbuka Start External Application: jadi saya tidak tahu cara Debug melalui Revit.

Setiap dan semua bantuan / arahan dihargai.

Dengan kode .csproj saat ini di bawah, saya mendapatkan kesalahan pop up ini:

.csproj

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net452<!--;net46;net47--></TargetFrameworks>
        <Configurations>Debug;Release</Configurations>
        <!--<Platforms>x64</Platforms>-->
        <OutputPath>bin\Debug\</OutputPath>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Any CPU' ">      
        <DefineConstants>DEBUG</DefineConstants>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>

        <DebugType>full</DebugType>
        <DebugSymbols>true</DebugSymbols>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)'=='Release'"> <PlatformTarget>x64</PlatformTarget> <DebugType>none</DebugType> <DebugSymbols>false</DebugSymbols> </PropertyGroup> <PropertyGroup Condition=" '$(TargetFramework)' == 'net452' ">
        <DefineConstants>$(DefineConstants);REVIT2018</DefineConstants> <!--<AssemblyName>helloWorld</AssemblyName>--> </PropertyGroup> <ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
        <!--<Reference Include="AdWindows">
            <HintPath>......\2018\AdWindows.dll</HintPath>
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>-->
        <Reference Include="RevitAPI">
            <HintPath>C:\Program Files\Autodesk\Revit 2018\RevitAPI.dll</HintPath>          
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>
        <Reference Include="RevitAPIUI">
            <HintPath>C:\Program Files\Autodesk\Revit 2018\RevitAPIUI.dll</HintPath>
            <EmbedInteropTypes>false</EmbedInteropTypes>
            <Private>false</Private>
        </Reference>
    </ItemGroup>

    <ItemGroup>
      <Reference Include="PresentationCore" />
      <Reference Include="System.Windows.Forms" />
    </ItemGroup>
</Project>

cuplikan properti proyek

Jawaban

Cflux Sep 22 2020 at 21:47

Terima kasih kepada Ehsan karena telah membagikan tautan Github-nya. Saya bisa mengetahuinya.

Saya menambahkan 2 baris ini ke grup properti saya dengan nama assembly.

<TargetFrameworkProfile />
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

dan kemudian menambahkan ini di bawah ini dalam grup properti terpisah yang tampaknya memungkinkan saya menjalankannya dalam versi berbeda. Saya baru menguji 2018 dan 2019 sejauh ini, tetapi tampaknya menjanjikan.

<PropertyGroup Condition="$(Configuration.Contains('2018'))"> <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> <RevitVersion>2018</RevitVersion> </PropertyGroup> <PropertyGroup Condition="$(Configuration.Contains('2019'))">
    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
    <RevitVersion>2019</RevitVersion>
  </PropertyGroup>
  <PropertyGroup Condition="$(Configuration.Contains('2020'))"> <TargetFrameworkVersion>v4.7</TargetFrameworkVersion> <RevitVersion>2020</RevitVersion> </PropertyGroup> <PropertyGroup Condition="$(Configuration.Contains('2021'))">
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <RevitVersion>2021</RevitVersion>
  </PropertyGroup>
ThếLong Oct 07 2020 at 16:52

Berkat posting Anda, saya telah belajar sesuatu tentang plug-in multi versi. Sekarang, untuk pertanyaan langsung, Anda dapat men-debug perpustakaan kelas Anda dengan memulai Revit saat Anda memulai proses debug. Dan pengaturannya adalah sebagai berikut:

  1. atur proyek Anda sebagai proyek awal (klik kanan proyek pada "solusi Exploration" panel => Set as Start up project) sehingga itu akan menjadi proyek pertama yang dijalankan saat debug

  2. Buka tab "Properti proyek" Anda, pilih "Debug"

  3. Dari "Mulai tindakan" di Debug, pilih "Mulai program eksternal". kemudian klik tombol "browse" untuk memilih file yang dapat dijalankan untuk Revit. Secara default, ini harus di:

    C: \ Program Files \ Autodesk \ your_version_of_revit

  4. Simpan proses, bangun proyek dan tekan F5 (atau kunci apa pun yang Anda tetapkan untuk debug)

Ini agak terlambat karena Anda sudah menyelesaikan masalah Anda, tetapi harap ini dapat membantu dalam beberapa situasi serupa.