首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# - Revit多版本插件.csproj文件

c# - Revit多版本插件.csproj文件
EN

Stack Overflow用户
提问于 2020-09-21 21:48:20
回答 2查看 691关注 0票数 3

我正在尝试为Revit创建一个简单的多版本hello World插件,并且我已经找到了这篇文章,我正在努力遵循它。不过,我没走多远。我不太熟悉.csproj文件是如何工作的。我以前为个别的Revit年创建了插件,但不是多个版本。

下面是我的.csProj代码。我试图从小开始,只处理.net框架4.5.2,也就是Revit2018。您还会在底部找到我的项目属性的片段。Start External Application:不再是开放的,所以我不知道如何通过Revit调试它。

任何和所有的帮助/指导都是感激的。

使用下面的当前.csproj代码,我得到了这个弹出错误:

.csproj

代码语言:javascript
复制
<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>

项目属性片段

EN

回答 2

Stack Overflow用户

发布于 2020-09-22 14:47:53

感谢Ehsan分享他的Github链接。我想出了办法。

我用程序集名称将这2行添加到我的属性组中。

代码语言:javascript
复制
<TargetFrameworkProfile />
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>

然后将它们添加到不同的属性组中,这似乎允许我在不同的版本中运行它们。到目前为止,我只测试了2018年和2019年,但看起来很有希望。

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2020-10-07 09:52:27

感谢你的帖子,我学到了一些关于多版本插件的知识。现在,对于直接的问题,您可以在启动调试过程时启动Revit来调试类库。设置如下:

  1. 将项目设置为启动项目(右键单击“解决方案探索”面板=>上的项目设置为启动项目),以便它将成为调试时运行的第一个项目。
  2. 打开“properties”选项卡,选择"Debug“
  3. 从调试的“启动操作”中选择“启动外部程序”。然后单击“浏览”按钮,为Revit选择可执行文件。默认情况下,它应该位于: C:\Program Files\Autodesk\your_version_of_revit
  4. 保存流程,构建项目并按F5 (或您为调试设置的任何键)

这是有点晚,因为你已经解决了你的问题,但希望它可以在一些类似的情况下有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64000403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档