簡體   English   中英

Visual Studio 2019 將 C# 程序導出為 DLL 而不是 EXE?

[英]Visual Studio 2019 Exports C# Program as DLL instead of EXE?

我很困惑,因為我在 Visual Studio 2019 中創建了一個新項目。我在不同的項目中分別嘗試了三次,每次都導出為 DLL 而不是 EXE。 以下是重現此問題的步驟:

  1. 新項目
  2. 控制台應用程序 (.NET Core)
  3. 設置新項目的詳細信息,然后點擊“創建”按鈕
  4. 將 Microsoft.Win32.Registry NuGet 包添加到項目
  5. 添加以下代碼:
using Microsoft.Win32;
using System;

namespace Key_Statistics_Startup_Changer {
    class Program {
        static void Main(string[] args) {
            if (args[0] == "CREATE_STARTUP") {
                RegistryKey rkey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                rkey.SetValue("Key Statistics", @"C:\Program Files\Key Statistics\Key Statistics.exe");
            }
            else if (args[0] == "REMOVE_STARTUP") {
                RegistryKey rkey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                rkey.DeleteValue("Key Statistics");
            }
        }
    }
}
  1. 構建並運行項目

當我這樣做時,當我通過 Visual Studio 輸入參數時,程序會從啟動時創建或刪除所需的注冊表(代碼試圖完成什么)。 然而,當這個項目被構建時,我的Key Statistics Startup Changer\\bin\\Debug文件夾為我提供了一個子目錄netcoreapp2.1其中包含以下文件:

關鍵統計信息 Startup Changer.deps.json
關鍵統計信息 Startup Changer.dll
關鍵統計信息 Startup Changer.pdb
關鍵統計信息 Startup Changer.runtimeconfig.dev.json
關鍵統計信息 Startup Changer.runtimeconfig.json

我確信我有正確的文件夾可以導出,並且每次我重新創建步驟(確保我沒有選擇 C# DLL 項目)時,都會發生這種情況。

這里有什么交易?

當您選擇Console App (.NET Core)而不是Console App (.NET Framework) ,您出錯了,簡而言之,從 .net core 獲取 .exe 比從 .net framework 獲取 .exe 更難。

不過不用擔心,您可以簡單地復制所有代碼並將它們粘貼到新的Console App (.NET Framework)項目中。

右鍵單擊項目並轉到屬性。 選擇Application選項卡,在右側,您有一個名為Output Type的選項。 你可以選擇任何你想要的; 例如,如果您希望您的項目發出一個 DLL,只需選擇Class Library

為項目選擇輸出類型的屏幕截圖

當您設置應用程序文件夾時:在要選擇的選項上添加/項目輸出/...,選擇“發布項目”而不是“主要輸出”。 這將打包 .exe 文件而不是 .dll,如果您確實需要 .dll 文件,則選擇“主要輸出”到輸出組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM