###### tags: `Visual Studio` # 轉換專案為SDK ## 如何移轉 - 安裝工具 ```shell= dotnet tool install --global Project2015To2017.Migrate2019.Tool ``` - 執行轉換 ```shell= dotnet migrate-2019 migrate "{csproj file path}" ``` ## 問題 ### WinForm 專案(專案裡有Form)於專案檔加入 ```xml= <UseWindowsForms>true</UseWindowsForms> <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets> <EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention> ``` ### 原參考路徑已不再可用 ```xml= <PropertyGroup> <AssemblySearchPaths > {CandidateAssemblyFiles}; $(ReferencePath); {HintPathFromItem}; {TargetFrameworkDirectory}; {Registry:$(FrameworkRegistryBase),$(TargetFrameworkVersion),$(AssemblyFoldersSuffix)$(AssemblyFoldersExConditions)}; {AssemblyFolders}; {GAC}; {RawFileName}; $(OutputPath); c:/pch; </AssemblySearchPaths> </PropertyGroup> ``` 說明 ```xml= <!-- The SearchPaths property is set to find assemblies in the following order: (1) Files from current project - indicated by {CandidateAssemblyFiles} (2) $(ReferencePath) - the reference path property, which comes from the .USER file. (3) The hintpath from the referenced item itself, indicated by {HintPathFromItem}. (4) The directory of MSBuild's "target" runtime from GetFrameworkPath. The "target" runtime folder is the folder of the runtime that MSBuild is a part of. (5) Registered assembly folders, indicated by {Registry:*,*,*} (6) Legacy registered assembly folders, indicated by {AssemblyFolders} (7) Look in the application's output folder (like bin\debug) (8) Resolve to the GAC. (9) Treat the reference's Include as if it were a real file name. --> ``` ### 明明沒有設定命令列參數,依然殘留轉換前設定的參數 移除 *.user 檔案後,重新載入專案