<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Multi version add-in using NuGet in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11805174#M13430</link>
    <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to configure multi-version VS project using this&amp;nbsp;&lt;A href="https://www.nuget.org/packages/Revit_All_Main_Versions_API_x64" target="_blank" rel="noopener"&gt;Revit_All_Main_Versions_API_x64&lt;/A&gt;&amp;nbsp;NuGet package. It comes with instructions posted below.&lt;/P&gt;&lt;P&gt;As I understand that I have to create multiple build configurations with name that includes Revit year version.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also have to add references in .vbproj file.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But how to install multiple NuGet versions?&amp;nbsp;&lt;BR /&gt;When I update package from 2023 to 2022, it deletes the 2023 version and all .dll files.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;File List:

RevitAPI.dll
RevitAPI.xml
RevitAPIUI.dll
RevitAPIUI.xml
AdWindows.dll
UIFramework.dll

Sets the references 'Copy Local' to False.

Example packages.config file content for multiple version filtering:
(Considers that your build configurations have the 'year' version of Revit in them.)


[snip]
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;packages&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2011.0.0" targetFramework="net35"  allowedVersions="[2011.0.0,2012.0.0)" Condition="$(Configuration.Contains('2011'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2012.0.0" targetFramework="net40"  allowedVersions="[2012.0.0,2013.0.0)" Condition="$(Configuration.Contains('2012'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2013.0.0" targetFramework="net40"  allowedVersions="[2013.0.0,2014.0.0)" Condition="$(Configuration.Contains('2013'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2014.0.0" targetFramework="net40"  allowedVersions="[2014.0.0,2015.0.0)" Condition="$(Configuration.Contains('2014'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2015.0.0" targetFramework="net45"  allowedVersions="[2015.0.0,2016.0.0)" Condition="$(Configuration.Contains('2015'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2016.0.0" targetFramework="net45"  allowedVersions="[2016.0.0,2017.0.0)" Condition="$(Configuration.Contains('2016'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2017.0.0" targetFramework="net46"  allowedVersions="[2017.0.0,2018.0.0)" Condition="$(Configuration.Contains('2017'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2018.0.0" targetFramework="net46"  allowedVersions="[2018.0.0,2019.0.0)" Condition="$(Configuration.Contains('2018'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2019.0.0" targetFramework="net47"  allowedVersions="[2019.0.0,2020.0.0)" Condition="$(Configuration.Contains('2019'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2020.0.0" targetFramework="net47"  allowedVersions="[2020.0.0,2021.0.0)" Condition="$(Configuration.Contains('2020'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2021.0.0" targetFramework="net48"  allowedVersions="[2021.0.0,2022.0.0)" Condition="$(Configuration.Contains('2021'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2022.0.0" targetFramework="net48"  allowedVersions="[2022.0.0,2023.0.0)" Condition="$(Configuration.Contains('2022'))"/&amp;gt;
&amp;lt;/packages&amp;gt;
[/snip]

Example excerpt from a .vbproj file for Revit 2012/2013/2014 (they are all .NET 4.0):
(Note the net40 will vary across other versions, and the hint path will vary when updates
are applied, and due to the location of your NUGET 'packages' storage location.)

    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
	&amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 07 Mar 2023 19:14:05 GMT</pubDate>
    <dc:creator>esatis</dc:creator>
    <dc:date>2023-03-07T19:14:05Z</dc:date>
    <item>
      <title>Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11805174#M13430</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to configure multi-version VS project using this&amp;nbsp;&lt;A href="https://www.nuget.org/packages/Revit_All_Main_Versions_API_x64" target="_blank" rel="noopener"&gt;Revit_All_Main_Versions_API_x64&lt;/A&gt;&amp;nbsp;NuGet package. It comes with instructions posted below.&lt;/P&gt;&lt;P&gt;As I understand that I have to create multiple build configurations with name that includes Revit year version.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also have to add references in .vbproj file.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But how to install multiple NuGet versions?&amp;nbsp;&lt;BR /&gt;When I update package from 2023 to 2022, it deletes the 2023 version and all .dll files.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;File List:

RevitAPI.dll
RevitAPI.xml
RevitAPIUI.dll
RevitAPIUI.xml
AdWindows.dll
UIFramework.dll

Sets the references 'Copy Local' to False.

Example packages.config file content for multiple version filtering:
(Considers that your build configurations have the 'year' version of Revit in them.)


[snip]
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;packages&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2011.0.0" targetFramework="net35"  allowedVersions="[2011.0.0,2012.0.0)" Condition="$(Configuration.Contains('2011'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2012.0.0" targetFramework="net40"  allowedVersions="[2012.0.0,2013.0.0)" Condition="$(Configuration.Contains('2012'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2013.0.0" targetFramework="net40"  allowedVersions="[2013.0.0,2014.0.0)" Condition="$(Configuration.Contains('2013'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2014.0.0" targetFramework="net40"  allowedVersions="[2014.0.0,2015.0.0)" Condition="$(Configuration.Contains('2014'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2015.0.0" targetFramework="net45"  allowedVersions="[2015.0.0,2016.0.0)" Condition="$(Configuration.Contains('2015'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2016.0.0" targetFramework="net45"  allowedVersions="[2016.0.0,2017.0.0)" Condition="$(Configuration.Contains('2016'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2017.0.0" targetFramework="net46"  allowedVersions="[2017.0.0,2018.0.0)" Condition="$(Configuration.Contains('2017'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2018.0.0" targetFramework="net46"  allowedVersions="[2018.0.0,2019.0.0)" Condition="$(Configuration.Contains('2018'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2019.0.0" targetFramework="net47"  allowedVersions="[2019.0.0,2020.0.0)" Condition="$(Configuration.Contains('2019'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2020.0.0" targetFramework="net47"  allowedVersions="[2020.0.0,2021.0.0)" Condition="$(Configuration.Contains('2020'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2021.0.0" targetFramework="net48"  allowedVersions="[2021.0.0,2022.0.0)" Condition="$(Configuration.Contains('2021'))"/&amp;gt;
  &amp;lt;package id="Revit_All_Main_Versions_API_x64" version="2022.0.0" targetFramework="net48"  allowedVersions="[2022.0.0,2023.0.0)" Condition="$(Configuration.Contains('2022'))"/&amp;gt;
&amp;lt;/packages&amp;gt;
[/snip]

Example excerpt from a .vbproj file for Revit 2012/2013/2014 (they are all .NET 4.0):
(Note the net40 will vary across other versions, and the hint path will vary when updates
are applied, and due to the location of your NUGET 'packages' storage location.)

    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2012'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2012.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
	&amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2013'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2013.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="AdWindows"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\AdWindows.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPI"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\RevitAPI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="RevitAPIUI"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\RevitAPIUI.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include="UIFramework"  Condition="$(Configuration.Contains('2014'))"&amp;gt;
      &amp;lt;HintPath&amp;gt;..\Packages\Revit_All_Main_Versions_API_x64.2014.0.0\lib\net40\UIFramework.dll&amp;lt;/HintPath&amp;gt;
      &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;
      &amp;lt;Private&amp;gt;False&amp;lt;/Private&amp;gt;
    &amp;lt;/Reference&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Mar 2023 19:14:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11805174#M13430</guid>
      <dc:creator>esatis</dc:creator>
      <dc:date>2023-03-07T19:14:05Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11806490#M13431</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1252563"&gt;@esatis&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Kindly, would you mind checking this forum thread on compiling multiple versions of Revit.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/how-do-i-setup-visual-studio-to-compile-to-multiple-versions-of/td-p/3900015" target="_blank" rel="noopener"&gt;&lt;EM&gt;&lt;STRONG&gt;https://forums.autodesk.com/t5/revit-api-forum/how-do-i-setup-visual-studio-to-compile-to-multiple-versions-of/td-p/3900015&lt;/STRONG&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Also, this has some important insights on NuGet package:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://thebuildingcoder.typepad.com/blog/2020/01/devdays-online-and-add-in-migration.html#2.1" target="_blank" rel="noopener"&gt;&lt;EM&gt;&lt;STRONG&gt;https://thebuildingcoder.typepad.com/blog/2020/01/devdays-online-and-add-in-migration.html#2.1&lt;/STRONG&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Mar 2023 08:43:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11806490#M13431</guid>
      <dc:creator>caroline.gitonga</dc:creator>
      <dc:date>2023-03-08T08:43:46Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11807055#M13432</link>
      <description>&lt;P&gt;Hello &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1252563"&gt;@esatis&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This configuration looks a little old, in my case, I only add this in the csproj.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First, the configurations of the project with all the version your project need and with the Debug version as well.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;PropertyGroup&amp;gt;
  &amp;lt;Configurations&amp;gt;Debug 2018;2018;Debug 2019;2019;Debug 2020;2020;Debug 2021;2021;Debug 2022;2022;Debug 2023;2023&amp;lt;/Configurations&amp;gt;
&amp;lt;/PropertyGroup&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;Here is a way to force depending on the configuration to select the &lt;EM&gt;TargetFramework&lt;/EM&gt; and &lt;EM&gt;RevitVersion&lt;/EM&gt;.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;!-- RevitVersion --&amp;gt;
&amp;lt;Choose&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2017'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2017&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net46&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2018'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2018&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net46&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2019'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2019&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net47&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2020'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2020&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net47&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2021'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2021&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2022'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2022&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;When Condition="$(Configuration.Contains('2023'))"&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2023&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/When&amp;gt;
  &amp;lt;Otherwise&amp;gt;
    &amp;lt;PropertyGroup&amp;gt;
      &amp;lt;RevitVersion&amp;gt;2017&amp;lt;/RevitVersion&amp;gt;
      &amp;lt;TargetFramework&amp;gt;net46&amp;lt;/TargetFramework&amp;gt;
    &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;/Otherwise&amp;gt;
&amp;lt;/Choose&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And the &lt;EM&gt;PackageReference&lt;/EM&gt; with the version like &lt;STRONG&gt;&lt;EM&gt;Version="$(RevitVersion).*" &lt;/EM&gt;&lt;/STRONG&gt;to change with the &lt;EM&gt;RevitVersion&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;ItemGroup&amp;gt;
  &amp;lt;PackageReference Include="Revit_All_Main_Versions_API_x64" Version="$(RevitVersion).*" IncludeAssets="build; compile" PrivateAssets="All" /&amp;gt;
&amp;lt;/ItemGroup&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are others configurations that you could add as well, here is a full project that uses this csproj.&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://github.com/ricaun-io/RevitAddin.CommandLoader/blob/master/RevitAddin.CommandLoader/RevitAddin.CommandLoader.csproj" target="_blank" rel="noopener"&gt;https://github.com/ricaun-io/RevitAddin.CommandLoader/blob/master/RevitAddin.CommandLoader/RevitAddin.CommandLoader.csproj&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Mar 2023 13:19:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11807055#M13432</guid>
      <dc:creator>ricaun</dc:creator>
      <dc:date>2023-03-08T13:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11812865#M13433</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4176855"&gt;@ricaun&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you for information! This approach seems nice!&lt;/P&gt;&lt;P&gt;I kind of implemented this but with some hiccups.&lt;/P&gt;&lt;P&gt;1. The Batch build works, but Debug throws error:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;A project with an Output Type of Class Library cannot be&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;started directly,&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;In order to debug this project, add an executable project to&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;this solution which references the library project. Set the&lt;/EM&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;EM&gt;executable project as the startup project.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;2. Packages have these yellow exclamation marks. Build is successful though so I just have to ignore them.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="esatis_0-1678553807217.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1187528i2BD4E450E1AF499A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="esatis_0-1678553807217.png" alt="esatis_0-1678553807217.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;3.&amp;nbsp; When I switch between configuration VS throws error:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Current solution contains incorrect configuration mappings. It may cause projects to not work correctly. Open the Configuration Manager to fix them.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Mar 2023 16:59:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11812865#M13433</guid>
      <dc:creator>esatis</dc:creator>
      <dc:date>2023-03-11T16:59:53Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11815013#M13434</link>
      <description>&lt;P&gt;1. Related to the start Debug: probably your debug program is not configured, this could do the trick.&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;  &amp;lt;!-- DebugRevitVersion --&amp;gt;
  &amp;lt;PropertyGroup Condition="$(Configuration.Contains('Debug'))"&amp;gt;
    &amp;lt;DebugRevitVersion&amp;gt;$(RevitVersion)&amp;lt;/DebugRevitVersion&amp;gt;
    &amp;lt;StartAction&amp;gt;Program&amp;lt;/StartAction&amp;gt;
    &amp;lt;StartProgram&amp;gt;C:\Program Files\Autodesk\Revit $(DebugRevitVersion)\Revit.exe&amp;lt;/StartProgram&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Usually the yellow part is fixed if you close and open the Visual Studio, if you changed the &lt;STRONG&gt;&lt;EM&gt;csproj&lt;/EM&gt; &lt;/STRONG&gt;sometimes the Visual Studio does not refresh/regenerate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. You need to open the &lt;STRONG&gt;&lt;EM&gt;Configuration Manager &lt;/EM&gt;&lt;/STRONG&gt;and check if everything is right, if you add the configuration directly in the &lt;EM&gt;&lt;STRONG&gt;csproj&lt;/STRONG&gt;&lt;/EM&gt;, Visual Studio could be confusing related to where to use this configuration in the Solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Mar 2023 19:27:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11815013#M13434</guid>
      <dc:creator>ricaun</dc:creator>
      <dc:date>2023-03-11T19:27:56Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11815721#M13435</link>
      <description>&lt;P&gt;1. I had this set up.&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Also tried to restart VS, but still the triangle persists.&amp;nbsp;&lt;/P&gt;&lt;P&gt;3.&amp;nbsp; This is my .csproj, maybe you can spot something wrong, because there is something strange happening. Sometimes it batch-build, sometime it just builds one versions, sometimes 3 out of 4.&amp;nbsp; Maybe you can spot something:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&amp;gt;
  &amp;lt;Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch&amp;gt;
      None
    &amp;lt;/ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch&amp;gt;
    &amp;lt;TargetFrameworkProfile /&amp;gt;
    &amp;lt;Platforms /&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

	&amp;lt;PropertyGroup&amp;gt;
		&amp;lt;OutputType&amp;gt;Library&amp;lt;/OutputType&amp;gt;
		&amp;lt;UseWPF&amp;gt;true&amp;lt;/UseWPF&amp;gt;
		&amp;lt;LangVersion&amp;gt;latest&amp;lt;/LangVersion&amp;gt;
		&amp;lt;AppendTargetFrameworkToOutputPath&amp;gt;false&amp;lt;/AppendTargetFrameworkToOutputPath&amp;gt;
		&amp;lt;Configurations&amp;gt;Debug 2020;2020;Debug 2021;2021;Debug 2022;2022;Debug 2023;2023&amp;lt;/Configurations&amp;gt;
	&amp;lt;/PropertyGroup&amp;gt;

	&amp;lt;!-- RevitVersion --&amp;gt;
	&amp;lt;Choose&amp;gt;
		&amp;lt;When Condition="$(Configuration.Contains('2020'))"&amp;gt;
			&amp;lt;PropertyGroup&amp;gt;
				&amp;lt;RevitVersion&amp;gt;2020&amp;lt;/RevitVersion&amp;gt;
				&amp;lt;TargetFramework&amp;gt;net47&amp;lt;/TargetFramework&amp;gt;
			
			&amp;lt;/PropertyGroup&amp;gt;
		&amp;lt;/When&amp;gt;
		&amp;lt;When Condition="$(Configuration.Contains('2021'))"&amp;gt;
			&amp;lt;PropertyGroup&amp;gt;
				&amp;lt;RevitVersion&amp;gt;2021&amp;lt;/RevitVersion&amp;gt;
				&amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
				
			&amp;lt;/PropertyGroup&amp;gt;
		&amp;lt;/When&amp;gt;
		&amp;lt;When Condition="$(Configuration.Contains('2022'))"&amp;gt;
			&amp;lt;PropertyGroup&amp;gt;
				&amp;lt;RevitVersion&amp;gt;2022&amp;lt;/RevitVersion&amp;gt;
				&amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
			
			&amp;lt;/PropertyGroup&amp;gt;
		&amp;lt;/When&amp;gt;
		&amp;lt;Otherwise&amp;gt;
			&amp;lt;PropertyGroup&amp;gt;
				&amp;lt;RevitVersion&amp;gt;2023&amp;lt;/RevitVersion&amp;gt;
				&amp;lt;TargetFramework&amp;gt;net48&amp;lt;/TargetFramework&amp;gt;
				
			&amp;lt;/PropertyGroup&amp;gt;
		&amp;lt;/Otherwise&amp;gt;
	&amp;lt;/Choose&amp;gt;

	
	&amp;lt;PropertyGroup&amp;gt;
    &amp;lt;Configuration Condition=" '$(Configuration)' == '' "&amp;gt;Debug&amp;lt;/Configuration&amp;gt;
    &amp;lt;Platform Condition=" '$(Platform)' == '' "&amp;gt;AnyCPU&amp;lt;/Platform&amp;gt;
    &amp;lt;ProjectGuid&amp;gt;{77E3E57E-DCC0-4E95-81F1-1CAA28655536}&amp;lt;/ProjectGuid&amp;gt;
    &amp;lt;OutputType&amp;gt;Library&amp;lt;/OutputType&amp;gt;
    &amp;lt;AppDesignerFolder&amp;gt;Properties&amp;lt;/AppDesignerFolder&amp;gt;
    &amp;lt;RootNamespace&amp;gt;MyMultiVersionAddin&amp;lt;/RootNamespace&amp;gt;
    &amp;lt;AssemblyName&amp;gt;MyMultiVersionAddin&amp;lt;/AssemblyName&amp;gt;
	&amp;lt;TargetFrameworkVersion&amp;gt;v4.8&amp;lt;/TargetFrameworkVersion&amp;gt;
    &amp;lt;FileAlignment&amp;gt;512&amp;lt;/FileAlignment&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

	&amp;lt;!-- Release --&amp;gt;
	&amp;lt;PropertyGroup Condition="!$(Configuration.Contains('Debug'))"&amp;gt;
		&amp;lt;Optimize&amp;gt;true&amp;lt;/Optimize&amp;gt;
		&amp;lt;OutputPath&amp;gt;bin\Release\$(RevitVersion)&amp;lt;/OutputPath&amp;gt;
		&amp;lt;DefineConstants&amp;gt;REVIT$(RevitVersion)&amp;lt;/DefineConstants&amp;gt;
		&amp;lt;NoWarn&amp;gt;MSB3052&amp;lt;/NoWarn&amp;gt;
	
		&amp;lt;DebugType&amp;gt;None&amp;lt;/DebugType&amp;gt;
	&amp;lt;/PropertyGroup&amp;gt;

	&amp;lt;!-- Debug --&amp;gt;
	&amp;lt;PropertyGroup Condition="$(Configuration.Contains('Debug'))"&amp;gt;
		&amp;lt;DebugSymbols&amp;gt;true&amp;lt;/DebugSymbols&amp;gt;
		&amp;lt;OutputPath&amp;gt;bin\Debug\&amp;lt;/OutputPath&amp;gt;
		&amp;lt;DefineConstants&amp;gt;DEBUG;TRACE;REVIT$(RevitVersion)&amp;lt;/DefineConstants&amp;gt;
		&amp;lt;DebugType&amp;gt;Full&amp;lt;/DebugType&amp;gt;
	&amp;lt;/PropertyGroup&amp;gt;

	&amp;lt;!-- DebugRevitVersion --&amp;gt;
	&amp;lt;PropertyGroup Condition="$(Configuration.Contains('Debug'))"&amp;gt;
		&amp;lt;DebugRevitVersion&amp;gt;$(RevitVersion)&amp;lt;/DebugRevitVersion&amp;gt;
		&amp;lt;OutputPath&amp;gt;bin\Debug\&amp;lt;/OutputPath&amp;gt;
		&amp;lt;ErrorReport&amp;gt;prompt&amp;lt;/ErrorReport&amp;gt;
		&amp;lt;WarningLevel&amp;gt;4&amp;lt;/WarningLevel&amp;gt;
		&amp;lt;StartAction&amp;gt;Program&amp;lt;/StartAction&amp;gt;
		&amp;lt;StartProgram&amp;gt;$(ProgramW6432)\Autodesk\Revit $(DebugRevitVersion)\Revit.exe&amp;lt;/StartProgram&amp;gt;
		
	&amp;lt;/PropertyGroup&amp;gt;
	
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Reference Include="PresentationCore" /&amp;gt;
    &amp;lt;Reference Include="System" /&amp;gt;
    &amp;lt;Reference Include="System.ComponentModel.Composition" /&amp;gt;
    &amp;lt;Reference Include="System.Data" /&amp;gt;
    &amp;lt;Reference Include="System.Drawing" /&amp;gt;
    &amp;lt;Reference Include="System.Numerics" /&amp;gt;
    &amp;lt;Reference Include="System.Web" /&amp;gt;
    &amp;lt;Reference Include="System.Windows.Forms" /&amp;gt;
    &amp;lt;Reference Include="System.Xml" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Compile Include="App.cs" /&amp;gt;
    &amp;lt;Compile Include="CheckedListBoxHelper.cs" /&amp;gt;
    &amp;lt;Compile Include="entitlementCheck.cs" /&amp;gt;
    &amp;lt;Compile Include="Command.cs" /&amp;gt;
    &amp;lt;Compile Include="Properties\Settings.Designer.cs"&amp;gt;
      &amp;lt;AutoGen&amp;gt;True&amp;lt;/AutoGen&amp;gt;
      &amp;lt;DesignTimeSharedInput&amp;gt;True&amp;lt;/DesignTimeSharedInput&amp;gt;
      &amp;lt;DependentUpon&amp;gt;Settings.settings&amp;lt;/DependentUpon&amp;gt;
    &amp;lt;/Compile&amp;gt;
    &amp;lt;Compile Include="Settings_form.cs"&amp;gt;
      &amp;lt;SubType&amp;gt;Form&amp;lt;/SubType&amp;gt;
    &amp;lt;/Compile&amp;gt;
    &amp;lt;Compile Include="Settings_form.Designer.cs"&amp;gt;
      &amp;lt;DependentUpon&amp;gt;Settings_form.cs&amp;lt;/DependentUpon&amp;gt;
    &amp;lt;/Compile&amp;gt;
    &amp;lt;Compile Include="Toolbox_msg.cs"&amp;gt;
      &amp;lt;SubType&amp;gt;Form&amp;lt;/SubType&amp;gt;
    &amp;lt;/Compile&amp;gt;
    &amp;lt;Compile Include="Toolbox_msg.Designer.cs"&amp;gt;
      &amp;lt;DependentUpon&amp;gt;Toolbox_msg.cs&amp;lt;/DependentUpon&amp;gt;
    &amp;lt;/Compile&amp;gt;
    &amp;lt;Compile Include="Properties\AssemblyInfo.cs" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Content Include="MyMultiVersionAddin.addin" /&amp;gt;
    &amp;lt;Resource Include="Resources\test_button.png" /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;None Include="app.config" /&amp;gt;
    &amp;lt;None Include="Properties\Settings.settings"&amp;gt;
      &amp;lt;Generator&amp;gt;SettingsSingleFileGenerator&amp;lt;/Generator&amp;gt;
      &amp;lt;LastGenOutput&amp;gt;Settings.Designer.cs&amp;lt;/LastGenOutput&amp;gt;
    &amp;lt;/None&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;EmbeddedResource Include="Settings_form.resx"&amp;gt;
      &amp;lt;DependentUpon&amp;gt;Settings_form.cs&amp;lt;/DependentUpon&amp;gt;
    &amp;lt;/EmbeddedResource&amp;gt;
    &amp;lt;EmbeddedResource Include="Toolbox_msg.resx"&amp;gt;
      &amp;lt;DependentUpon&amp;gt;Toolbox_msg.cs&amp;lt;/DependentUpon&amp;gt;
    &amp;lt;/EmbeddedResource&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;PackageReference Include="RestSharp"&amp;gt;
      &amp;lt;Version&amp;gt;106.12.0&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
	  &amp;lt;PackageReference Include="Revit_All_Main_Versions_API_x64" IncludeAssets="build; compile" PrivateAssets="All"&amp;gt;
      &amp;lt;Version&amp;gt;$(RevitVersion).*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Data.SqlClient"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Diagnostics.DiagnosticSource"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Net.Http"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Runtime"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Security.Cryptography.Algorithms"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Security.Cryptography.X509Certificates"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
    &amp;lt;PackageReference Include="System.Text.Json"&amp;gt;
      &amp;lt;Version&amp;gt;*&amp;lt;/Version&amp;gt;
      &amp;lt;PrivateAssets&amp;gt;All&amp;lt;/PrivateAssets&amp;gt;
      &amp;lt;ExcludeAssets&amp;gt;runtime&amp;lt;/ExcludeAssets&amp;gt;
    &amp;lt;/PackageReference&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  &amp;lt;Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;PostBuildEvent&amp;gt;if exist "$(AppData)\Autodesk\REVIT\Addins\2023" copy "$(ProjectDir)*.addin" "$(AppData)\Autodesk\REVIT\Addins\2023"
if exist "$(AppData)\Autodesk\REVIT\Addins\2023" copy "$(ProjectDir)$(OutputPath)*.dll" "$(AppData)\Autodesk\REVIT\Addins\2023"&amp;lt;/PostBuildEvent&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  &amp;lt;Target Name="BeforeBuild"&amp;gt;
  &amp;lt;/Target&amp;gt;
  &amp;lt;Target Name="AfterBuild"&amp;gt;
  &amp;lt;/Target&amp;gt;
  --&amp;gt;
  &amp;lt;Target Name="AfterClean"&amp;gt;
    &amp;lt;Delete Files="$(AppData)\Autodesk\REVIT\Addins\2023\MyMultiVersionAddin.addin" /&amp;gt;
    &amp;lt;Delete Files="$(AppData)\Autodesk\REVIT\Addins\2023\MyMultiVersionAddin.dll" /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Mar 2023 10:50:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11815721#M13435</guid>
      <dc:creator>esatis</dc:creator>
      <dc:date>2023-03-12T10:50:46Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11816769#M13436</link>
      <description>&lt;P&gt;Do you need to support Revit versions 2011~2019? If I were you I would be more targeted, and stick to say a max span of 4 versions from the current, e.g. 2020~2023 (R2019 should in theory also be supported).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This will solve some of the complexities in your csproj, plus simplify the preprocessor directives you'll need to cope with breaking changes between the various APIs.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One of the other possible causes of your Nuget issue is your target framework; if they differ between projects in a solution, or if a Nuget targets a higher framework then the one you're targeting, you'll see the warning signs. So you can't configure your csproj frameworks just for Revit, you need to do it for all NuGets; even more reason to be selective over which versions of Revit to target.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I suggest you target Revit 2023~2020. You also don't need to change frameworks. Just target 4.8 for all of them since its backwards compatible. End-users wont be able to run your app if they don't have this runtime installed, but its only going to be a problem for R2020. If they have higher versions installed then they'll have the runtime, if not either customize your installer or create a build configuration for it and revert to two deployments.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, you can use dependency injection to solve the problem of version compatibility and you wont have to bother with convoluted csproj conditions nor multiple deployments. I wrote a basic outline of how to do this here, just note I've cut corners for the sake of simplicity, so if you do it this way then: A) DI means DI, via the constructor. B) Use an IoC container (which is how I do implement this on live projects, then you won't need the implementation in the main project, nor forwarding methods or a singleton). C) Avoid using a singleton if you can, not unless you already are making static calls to the Revit API, then it makes no difference:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://twitter.com/Thomas__Mahon/status/1627198485668966401?s=20" target="_blank" rel="noopener"&gt;https://twitter.com/Thomas__Mahon/status/1627198485668966401?s=20&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Mar 2023 04:56:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11816769#M13436</guid>
      <dc:creator>thomas</dc:creator>
      <dc:date>2023-03-13T04:56:46Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11818278#M13437</link>
      <description>&lt;P&gt;Looks like &lt;EM&gt;ToolsVersion="14.0"&lt;/EM&gt; does not work very well with &lt;EM&gt;&lt;STRONG&gt;PackageReference&lt;/STRONG&gt;&lt;/EM&gt;... Probably gonna be easier to update your &lt;EM&gt;&lt;STRONG&gt;csproj&lt;/STRONG&gt; &lt;/EM&gt;to use &lt;EM&gt;Sdk="Microsoft.NET.Sdk"&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know you gonna have issues with duplicate compiled files and attributes in the &lt;EM&gt;&lt;STRONG&gt;AssemblyInfo.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;PostBuildEvent &lt;/STRONG&gt;&lt;/EM&gt;and &lt;EM&gt;&lt;STRONG&gt;Target Name="AfterClean" &lt;/STRONG&gt;&lt;/EM&gt;gonna need some change to make works as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Probably gonna create a video to help with that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Mar 2023 16:53:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11818278#M13437</guid>
      <dc:creator>ricaun</dc:creator>
      <dc:date>2023-03-13T16:53:36Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11818688#M13438</link>
      <description>&lt;P&gt;I created this video to convert an existing project to work with multi-version Revit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I used the Jeremy Template: &lt;A href="https://github.com/jeremytammik/VisualStudioRevitAddinWizard" target="_blank"&gt;https://github.com/jeremytammik/VisualStudioRevitAddinWizard&lt;/A&gt; to create a project and convert it to work with Revit 2020, Revit 2021, Revit 2022, and Revit 2023.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FRLPcZ7ejf0g%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DRLPcZ7ejf0g&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRLPcZ7ejf0g%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="200" height="112" scrolling="no" title="Update your RevitAddin project to work with Multiple Revit Version" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the project/solution: &lt;A href="https://github.com/ricaun-io/RevitAddin.MultVersion" target="_blank"&gt;https://github.com/ricaun-io/RevitAddin.MultVersion&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Mar 2023 19:53:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11818688#M13438</guid>
      <dc:creator>ricaun</dc:creator>
      <dc:date>2023-03-13T19:53:44Z</dc:date>
    </item>
    <item>
      <title>Re: Multi version add-in using NuGet</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11819067#M13439</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4176855"&gt;@ricaun&lt;/a&gt;&amp;nbsp;yes! I just figured that out (to convert to SDK type project) yesterday and today after some tweaking your method works and is awesome! I used this blogpost&amp;nbsp;&lt;A href="https://hermit.no/moving-to-sdk-style-projects-and-package-references-in-visual-studio-part-2/" target="_blank" rel="noopener"&gt;Migrating to SDK format automatically&amp;nbsp;&lt;/A&gt;to help with conversion.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Mar 2023 23:35:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/multi-version-add-in-using-nuget/m-p/11819067#M13439</guid>
      <dc:creator>esatis</dc:creator>
      <dc:date>2023-03-13T23:35:29Z</dc:date>
    </item>
  </channel>
</rss>

