我正在尝试为Revit创建一个简单的多版本hello World插件,并且我已经找到了这篇文章,我正在努力遵循它。不过,我没走多远。我不太熟悉.csproj文件是如何工作的。我以前为个别的Revit年创建了插件,但不是多个版本。
下面是我的.csProj代码。我试图从小开始,只处理.net框架4.5.2,也就是Revit2018。您还会在底部找到我的项目属性的片段。Start External Application:不再是开放的,所以我不知道如何通过Revit调试它。
任何和所有的帮助/指导都是感激的。
使用下面的当前.csproj代码,我得到了这个弹出错误:

.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>项目属性片段



发布于 2020-09-22 14:47:53
感谢Ehsan分享他的Github链接。我想出了办法。
我用程序集名称将这2行添加到我的属性组中。
<TargetFrameworkProfile />
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>然后将它们添加到不同的属性组中,这似乎允许我在不同的版本中运行它们。到目前为止,我只测试了2018年和2019年,但看起来很有希望。
<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>发布于 2020-10-07 09:52:27
感谢你的帖子,我学到了一些关于多版本插件的知识。现在,对于直接的问题,您可以在启动调试过程时启动Revit来调试类库。设置如下:
这是有点晚,因为你已经解决了你的问题,但希望它可以在一些类似的情况下有所帮助。
https://stackoverflow.com/questions/64000403
复制相似问题